[gimp/blend-tool-fun: 22/163] Bug 754171 - cmd - missing modifier key to configure input controllers



commit e788440f557da8179c8b837fc6db5b310b4cb462
Author: Michael Natterer <mitch gimp org>
Date:   Tue Sep 8 23:18:33 2015 +0200

    Bug 754171 - cmd - missing modifier key to configure input controllers
    
    Don't hardcode modifier masks in the wheel and keyboard input
    controllers. Instead, hardcode accelerator strings and get the right
    modifier mask from gtk_accelerator_parse() at runtime.
    
    This turns e.g. "<Shift><Primary>" into Shift+Cmd on OS X and into
    Shift+Ctrl on X11 and Windows.
    
    Also rename the events accordingly and change the event names in the
    default controllerrc.
    
    Unrelated: reorder the actions so the ones with less modifiers are
    listed first, and change the order of action matching to match the
    actions with most modifiers (the last ones) first.

 app/widgets/gimpcontrollerkeyboard.c |  148 ++++++++++++++++++---------------
 app/widgets/gimpcontrollerwheel.c    |  128 ++++++++++++++++-------------
 etc/controllerrc                     |   20 +++---
 3 files changed, 161 insertions(+), 135 deletions(-)
---
diff --git a/app/widgets/gimpcontrollerkeyboard.c b/app/widgets/gimpcontrollerkeyboard.c
index a2db149..3277f2a 100644
--- a/app/widgets/gimpcontrollerkeyboard.c
+++ b/app/widgets/gimpcontrollerkeyboard.c
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  *
  * gimpcontrollerkeyboard.c
- * Copyright (C) 2004 Michael Natterer <mitch gimp org>
+ * Copyright (C) 2004-2015 Michael Natterer <mitch gimp org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -40,7 +40,8 @@ typedef struct _KeyboardEvent KeyboardEvent;
 struct _KeyboardEvent
 {
   const guint            keyval;
-  const GdkModifierType  modifiers;
+  const gchar           *modifier_string;
+  GdkModifierType        modifiers;
   const gchar           *name;
   const gchar           *blurb;
 };
@@ -63,104 +64,104 @@ G_DEFINE_TYPE (GimpControllerKeyboard, gimp_controller_keyboard,
 
 static KeyboardEvent keyboard_events[] =
 {
-  { GDK_KEY_Up, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-up-shift-control-alt",
-    N_("Cursor Up") },
-  { GDK_KEY_Up, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "cursor-up-control-alt",
+  { GDK_KEY_Up, NULL, 0,
+    "cursor-up",
     N_("Cursor Up") },
-  { GDK_KEY_Up, GDK_MOD1_MASK | GDK_SHIFT_MASK,
-    "cursor-up-shift-alt",
+  { GDK_KEY_Up, "<Shift>", 0,
+    "cursor-up-shift",
     N_("Cursor Up") },
-  { GDK_KEY_Up, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-up-shift-control",
+  { GDK_KEY_Up, "<Primary>", 0,
+    "cursor-up-control",
     N_("Cursor Up") },
-  { GDK_KEY_Up, GDK_MOD1_MASK,
+  { GDK_KEY_Up, "<Alt>", 0,
     "cursor-up-alt",
     N_("Cursor Up") },
-  { GDK_KEY_Up, GDK_CONTROL_MASK,
-    "cursor-up-control",
+  { GDK_KEY_Up, "<Shift><Primary>", 0,
+    "cursor-up-shift-control",
     N_("Cursor Up") },
-  { GDK_KEY_Up, GDK_SHIFT_MASK,
-    "cursor-up-shift",
+  { GDK_KEY_Up, "<Shift><Alt>", 0,
+    "cursor-up-shift-alt",
     N_("Cursor Up") },
-  { GDK_KEY_Up, 0,
-    "cursor-up",
+  { GDK_KEY_Up, "<Primary><Alt>", 0,
+    "cursor-up-control-alt",
+    N_("Cursor Up") },
+  { GDK_KEY_Up, "<Shift><Primary><Alt>", 0,
+    "cursor-up-shift-control-alt",
     N_("Cursor Up") },
 
-  { GDK_KEY_Down, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-down-shift-control-alt",
-    N_("Cursor Down") },
-  { GDK_KEY_Down, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "cursor-down-control-alt",
+  { GDK_KEY_Down, NULL, 0,
+    "cursor-down",
     N_("Cursor Down") },
-  { GDK_KEY_Down, GDK_MOD1_MASK | GDK_SHIFT_MASK,
-    "cursor-down-shift-alt",
+  { GDK_KEY_Down, "<Shift>", 0,
+    "cursor-down-shift",
     N_("Cursor Down") },
-  { GDK_KEY_Down, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-down-shift-control",
+  { GDK_KEY_Down, "<Primary>", 0,
+    "cursor-down-control",
     N_("Cursor Down") },
-  { GDK_KEY_Down, GDK_MOD1_MASK,
+  { GDK_KEY_Down, "<Alt>", 0,
     "cursor-down-alt",
     N_("Cursor Down") },
-  { GDK_KEY_Down, GDK_CONTROL_MASK,
-    "cursor-down-control",
+  { GDK_KEY_Down, "<Shift><Primary>", 0,
+    "cursor-down-shift-control",
     N_("Cursor Down") },
-  { GDK_KEY_Down, GDK_SHIFT_MASK,
-    "cursor-down-shift",
+  { GDK_KEY_Down, "<Shift><Alt>", 0,
+    "cursor-down-shift-alt",
     N_("Cursor Down") },
-  { GDK_KEY_Down, 0,
-    "cursor-down",
+  { GDK_KEY_Down, "<Primary><Alt>", 0,
+    "cursor-down-control-alt",
+    N_("Cursor Down") },
+  { GDK_KEY_Down, "<Shift><Primary><Alt>", 0,
+    "cursor-down-shift-control-alt",
     N_("Cursor Down") },
 
-  { GDK_KEY_Left, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-left-shift-control-alt",
-    N_("Cursor Left") },
-  { GDK_KEY_Left, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "cursor-left-control-alt",
+  { GDK_KEY_Left, NULL, 0,
+    "cursor-left",
     N_("Cursor Left") },
-  { GDK_KEY_Left, GDK_MOD1_MASK | GDK_SHIFT_MASK,
-    "cursor-left-shift-alt",
+  { GDK_KEY_Left, "<Shift>", 0,
+    "cursor-left-shift",
     N_("Cursor Left") },
-  { GDK_KEY_Left, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-left-shift-control",
+  { GDK_KEY_Left, "<Primary>", 0,
+    "cursor-left-control",
     N_("Cursor Left") },
-  { GDK_KEY_Left, GDK_MOD1_MASK,
+  { GDK_KEY_Left, "<Alt>", 0,
     "cursor-left-alt",
     N_("Cursor Left") },
-  { GDK_KEY_Left, GDK_CONTROL_MASK,
-    "cursor-left-control",
+  { GDK_KEY_Left, "<Shift><Primary>", 0,
+    "cursor-left-shift-control",
     N_("Cursor Left") },
-  { GDK_KEY_Left, GDK_SHIFT_MASK,
-    "cursor-left-shift",
+  { GDK_KEY_Left, "<Shift><Alt>", 0,
+    "cursor-left-shift-alt",
     N_("Cursor Left") },
-  { GDK_KEY_Left, 0,
-    "cursor-left",
+  { GDK_KEY_Left, "<Primary><Alt>", 0,
+    "cursor-left-control-alt",
+    N_("Cursor Left") },
+  { GDK_KEY_Left, "<Shift><Primary><Alt>", 0,
+    "cursor-left-shift-control-alt",
     N_("Cursor Left") },
 
-  { GDK_KEY_Right, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-right-shift-control-alt",
-    N_("Cursor Right") },
-  { GDK_KEY_Right, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "cursor-right-control-alt",
+  { GDK_KEY_Right, NULL, 0,
+    "cursor-right",
     N_("Cursor Right") },
-  { GDK_KEY_Right, GDK_MOD1_MASK | GDK_SHIFT_MASK,
-    "cursor-right-shift-alt",
+  { GDK_KEY_Right, "<Shift>", 0,
+    "cursor-right-shift",
     N_("Cursor Right") },
-  { GDK_KEY_Right, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "cursor-right-shift-control",
+  { GDK_KEY_Right, "<Primary>", 0,
+    "cursor-right-control",
     N_("Cursor Right") },
-  { GDK_KEY_Right, GDK_MOD1_MASK,
+  { GDK_KEY_Right, "<Alt>", 0,
     "cursor-right-alt",
     N_("Cursor Right") },
-  { GDK_KEY_Right, GDK_CONTROL_MASK,
-    "cursor-right-control",
+  { GDK_KEY_Right, "<Shift><Primary>", 0,
+    "cursor-right-shift-control",
     N_("Cursor Right") },
-  { GDK_KEY_Right, GDK_SHIFT_MASK,
-    "cursor-right-shift",
+  { GDK_KEY_Right, "<Shift><Alt>", 0,
+    "cursor-right-shift-alt",
     N_("Cursor Right") },
-  { GDK_KEY_Right, 0,
-    "cursor-right",
+  { GDK_KEY_Right, "<Primary><Alt>", 0,
+    "cursor-right-control-alt",
+    N_("Cursor Right") },
+  { GDK_KEY_Right, "<Shift><Primary><Alt>", 0,
+    "cursor-right-shift-control-alt",
     N_("Cursor Right") }
 };
 
@@ -195,12 +196,22 @@ gimp_controller_keyboard_init (GimpControllerKeyboard *keyboard)
         {
           KeyboardEvent *kevent = &keyboard_events[i];
 
+          if (kevent->modifier_string)
+            {
+              gtk_accelerator_parse (kevent->modifier_string, NULL,
+                                     &kevent->modifiers);
+            }
+
           if (kevent->modifiers != 0)
             {
               kevent->blurb =
                 g_strdup_printf ("%s (%s)", gettext (kevent->blurb),
                                  gimp_get_mod_string (kevent->modifiers));
             }
+          else
+            {
+              kevent->blurb = gettext (kevent->blurb);
+            }
         }
 
       event_names_initialized = TRUE;
@@ -253,7 +264,10 @@ gimp_controller_keyboard_key_press (GimpControllerKeyboard *keyboard,
   g_return_val_if_fail (GIMP_IS_CONTROLLER_KEYBOARD (keyboard), FALSE);
   g_return_val_if_fail (kevent != NULL, FALSE);
 
-  for (i = 0; i < G_N_ELEMENTS (keyboard_events); i++)
+  /*  start with the last event because the last ones in the
+   *  up,down,left,right groups have the most keyboard modifiers
+   */
+  for (i = G_N_ELEMENTS (keyboard_events) - 1; i >= 0; i--)
     {
       if (keyboard_events[i].keyval == kevent->keyval)
         {
diff --git a/app/widgets/gimpcontrollerwheel.c b/app/widgets/gimpcontrollerwheel.c
index e97ce93..b3f5ea1 100644
--- a/app/widgets/gimpcontrollerwheel.c
+++ b/app/widgets/gimpcontrollerwheel.c
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  *
  * gimpcontrollerwheel.c
- * Copyright (C) 2004 Michael Natterer <mitch gimp org>
+ * Copyright (C) 2004-2015 Michael Natterer <mitch gimp org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -34,15 +34,13 @@
 #include "gimp-intl.h"
 
 
-#define MODIFIER_MASK (GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK)
-
-
 typedef struct _WheelEvent WheelEvent;
 
 struct _WheelEvent
 {
   const GdkScrollDirection  direction;
-  const GdkModifierType     modifiers;
+  const gchar              *modifier_string;
+  GdkModifierType           modifiers;
   const gchar              *name;
   const gchar              *blurb;
 };
@@ -65,104 +63,104 @@ G_DEFINE_TYPE (GimpControllerWheel, gimp_controller_wheel,
 
 static WheelEvent wheel_events[] =
 {
-  { GDK_SCROLL_UP, 0,
+  { GDK_SCROLL_UP, NULL, 0,
     "scroll-up",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_SHIFT_MASK,
+  { GDK_SCROLL_UP, "<Shift>", 0,
     "scroll-up-shift",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_CONTROL_MASK,
-    "scroll-up-control",
+  { GDK_SCROLL_UP, "<Primary>", 0,
+    "scroll-up-primary",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_MOD1_MASK,
+  { GDK_SCROLL_UP, "<Alt>", 0,
     "scroll-up-alt",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-up-shift-control",
+  { GDK_SCROLL_UP, "<Shift><Primary>", 0,
+    "scroll-up-shift-primary",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_SHIFT_MASK,
+  { GDK_SCROLL_UP, "<Shift><Alt>", 0,
     "scroll-up-shift-alt",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "scroll-up-control-alt",
+  { GDK_SCROLL_UP, "<Primary><Alt>", 0,
+    "scroll-up-primary-alt",
     N_("Scroll Up") },
-  { GDK_SCROLL_UP, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-up-shift-control-alt",
+  { GDK_SCROLL_UP, "<Shift><Primary><Alt>", 0,
+    "scroll-up-shift-primary-alt",
     N_("Scroll Up") },
 
-  { GDK_SCROLL_DOWN, 0,
+  { GDK_SCROLL_DOWN, NULL, 0,
     "scroll-down",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_SHIFT_MASK,
+  { GDK_SCROLL_DOWN, "<Shift>", 0,
     "scroll-down-shift",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_CONTROL_MASK,
-    "scroll-down-control",
+  { GDK_SCROLL_DOWN, "<Primary>", 0,
+    "scroll-down-primary",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_MOD1_MASK,
+  { GDK_SCROLL_DOWN, "<Alt>", 0,
     "scroll-down-alt",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-down-shift-control",
+  { GDK_SCROLL_DOWN, "<Shift><Primary>", 0,
+    "scroll-down-shift-primary",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_SHIFT_MASK,
+  { GDK_SCROLL_DOWN, "<Shift><Alt>", 0,
     "scroll-down-shift-alt",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "scroll-down-control-alt",
+  { GDK_SCROLL_DOWN, "<Primary><Alt>", 0,
+    "scroll-down-primary-alt",
     N_("Scroll Down") },
-  { GDK_SCROLL_DOWN, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-down-shift-control-alt",
+  { GDK_SCROLL_DOWN, "<Shift><Primary><Alt>", 0,
+    "scroll-down-shift-primary-alt",
     N_("Scroll Down") },
 
-  { GDK_SCROLL_LEFT, 0,
+  { GDK_SCROLL_LEFT, NULL, 0,
     "scroll-left",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_SHIFT_MASK,
+  { GDK_SCROLL_LEFT, "<Shift>", 0,
     "scroll-left-shift",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_CONTROL_MASK,
-    "scroll-left-control",
+  { GDK_SCROLL_LEFT, "<Primary>", 0,
+    "scroll-left-primary",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_MOD1_MASK,
+  { GDK_SCROLL_LEFT, "<Alt>", 0,
     "scroll-left-alt",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-left-shift-control",
+  { GDK_SCROLL_LEFT, "<Shift><Primary>", 0,
+    "scroll-left-shift-primary",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_SHIFT_MASK,
+  { GDK_SCROLL_LEFT, "<Shift><Alt>", 0,
     "scroll-left-shift-alt",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "scroll-left-control-alt",
+  { GDK_SCROLL_LEFT, "<Primary><Alt>", 0,
+    "scroll-left-primary-alt",
     N_("Scroll Left") },
-  { GDK_SCROLL_LEFT, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-left-shift-control-alt",
+  { GDK_SCROLL_LEFT, "<Shift><Primary><Alt>", 0,
+    "scroll-left-shift-primary-alt",
     N_("Scroll Left") },
 
-  { GDK_SCROLL_RIGHT, 0,
+  { GDK_SCROLL_RIGHT, NULL, 0,
     "scroll-right",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_SHIFT_MASK,
+  { GDK_SCROLL_RIGHT, "<Shift>", 0,
     "scroll-right-shift",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_CONTROL_MASK,
-    "scroll-right-control",
+  { GDK_SCROLL_RIGHT, "<Primary>", 0,
+    "scroll-right-primary",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_MOD1_MASK,
+  { GDK_SCROLL_RIGHT, "<Alt>", 0,
     "scroll-right-alt",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-right-shift-control",
+  { GDK_SCROLL_RIGHT, "<Shift><Primary>", 0,
+    "scroll-right-shift-primary",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_SHIFT_MASK,
+  { GDK_SCROLL_RIGHT, "<Shift><Alt>", 0,
     "scroll-right-shift-alt",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_CONTROL_MASK,
-    "scroll-right-control-alt",
+  { GDK_SCROLL_RIGHT, "<Primary><Alt>", 0,
+    "scroll-right-primary-alt",
     N_("Scroll Right") },
-  { GDK_SCROLL_RIGHT, GDK_MOD1_MASK | GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-    "scroll-right-shift-control-alt",
+  { GDK_SCROLL_RIGHT, "<Shift><Primary><Alt>", 0,
+    "scroll-right-shift-primary-alt",
     N_("Scroll Right") }
 };
 
@@ -187,9 +185,9 @@ gimp_controller_wheel_class_init (GimpControllerWheelClass *klass)
 static void
 gimp_controller_wheel_init (GimpControllerWheel *wheel)
 {
-  static gboolean event_names_initialized = FALSE;
+  static gboolean events_initialized = FALSE;
 
-  if (! event_names_initialized)
+  if (! events_initialized)
     {
       gint i;
 
@@ -197,15 +195,25 @@ gimp_controller_wheel_init (GimpControllerWheel *wheel)
         {
           WheelEvent *wevent = &wheel_events[i];
 
+          if (wevent->modifier_string)
+            {
+              gtk_accelerator_parse (wevent->modifier_string, NULL,
+                                     &wevent->modifiers);
+            }
+
           if (wevent->modifiers != 0)
             {
               wevent->blurb =
                 g_strdup_printf ("%s (%s)", gettext (wevent->blurb),
                                  gimp_get_mod_string (wevent->modifiers));
             }
+          else
+            {
+              wevent->blurb = gettext (wevent->blurb);
+            }
         }
 
-      event_names_initialized = TRUE;
+      events_initialized = TRUE;
     }
 }
 
@@ -255,11 +263,15 @@ gimp_controller_wheel_scroll (GimpControllerWheel  *wheel,
   g_return_val_if_fail (GIMP_IS_CONTROLLER_WHEEL (wheel), FALSE);
   g_return_val_if_fail (sevent != NULL, FALSE);
 
-  for (i = 0; i < G_N_ELEMENTS (wheel_events); i++)
+  /*  start with the last event because the last ones in the
+   *  up,down,left,right groups have the most keyboard modifiers
+   */
+  for (i = G_N_ELEMENTS (wheel_events) - 1; i >= 0; i--)
     {
       if (wheel_events[i].direction == sevent->direction)
         {
-          if ((sevent->state & MODIFIER_MASK) == wheel_events[i].modifiers)
+          if ((wheel_events[i].modifiers & sevent->state) ==
+              wheel_events[i].modifiers)
             {
               GimpControllerEvent         controller_event;
               GimpControllerEventTrigger *trigger;
diff --git a/etc/controllerrc b/etc/controllerrc
index ca10179..94bf218 100644
--- a/etc/controllerrc
+++ b/etc/controllerrc
@@ -7,14 +7,14 @@
     (mapping
         (map "scroll-up-alt"                 "tools-opacity-increase-skip")
         (map "scroll-down-alt"               "tools-opacity-decrease-skip")
-        (map "scroll-up-control-alt"         "context-gradient-select-next")
-        (map "scroll-down-control-alt"       "context-gradient-select-previous")
+        (map "scroll-up-primary-alt"         "context-gradient-select-next")
+        (map "scroll-down-primary-alt"       "context-gradient-select-previous")
         (map "scroll-up-shift-alt"           "context-pattern-select-next")
         (map "scroll-down-shift-alt"         "context-pattern-select-previous")
-        (map "scroll-up-shift-control"       "context-brush-select-next")
-        (map "scroll-down-shift-control"     "context-brush-select-previous")
-        (map "scroll-up-shift-control-alt"   "context-font-select-next")
-        (map "scroll-down-shift-control-alt" "context-font-select-previous")))
+        (map "scroll-up-shift-primary"       "context-brush-select-next")
+        (map "scroll-down-shift-primary"     "context-brush-select-previous")
+        (map "scroll-up-shift-primary-alt"   "context-font-select-next")
+        (map "scroll-down-shift-primary-alt" "context-font-select-previous")))
 
 (GimpControllerInfo "Main Keyboard"
     (enabled yes)
@@ -25,10 +25,10 @@
         (map "cursor-down-shift"    "view-scroll-page-down")
         (map "cursor-left-shift"    "view-scroll-page-left")
         (map "cursor-right-shift"   "view-scroll-page-right")
-        (map "cursor-up-control"    "view-scroll-top-border")
-        (map "cursor-down-control"  "view-scroll-bottom-border")
-        (map "cursor-left-control"  "view-scroll-left-border")
-        (map "cursor-right-control" "view-scroll-right-border")
+        (map "cursor-up-primary"    "view-scroll-top-border")
+        (map "cursor-down-primary"  "view-scroll-bottom-border")
+        (map "cursor-left-primary"  "view-scroll-left-border")
+        (map "cursor-right-primary" "view-scroll-right-border")
         (map "cursor-up-alt"        "tools-value-1-increase-skip")
         (map "cursor-down-alt"      "tools-value-1-decrease-skip")
         (map "cursor-left-alt"      "tools-value-1-decrease")


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]