mirror of https://github.com/GNOME/gimp.git
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.
This commit is contained in:
parent
eba7066748
commit
e50103ccda
|
@ -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",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, GDK_MOD1_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-up-shift-alt",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-up-shift-control",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, GDK_MOD1_MASK,
|
||||
"cursor-up-alt",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, GDK_CONTROL_MASK,
|
||||
"cursor-up-control",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, GDK_SHIFT_MASK,
|
||||
"cursor-up-shift",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, 0,
|
||||
{ GDK_KEY_Up, NULL, 0,
|
||||
"cursor-up",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, "<Shift>", 0,
|
||||
"cursor-up-shift",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, "<Primary>", 0,
|
||||
"cursor-up-control",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, "<Alt>", 0,
|
||||
"cursor-up-alt",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, "<Shift><Primary>", 0,
|
||||
"cursor-up-shift-control",
|
||||
N_("Cursor Up") },
|
||||
{ GDK_KEY_Up, "<Shift><Alt>", 0,
|
||||
"cursor-up-shift-alt",
|
||||
N_("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",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, GDK_MOD1_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-down-shift-alt",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-down-shift-control",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, GDK_MOD1_MASK,
|
||||
"cursor-down-alt",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, GDK_CONTROL_MASK,
|
||||
"cursor-down-control",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, GDK_SHIFT_MASK,
|
||||
"cursor-down-shift",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, 0,
|
||||
{ GDK_KEY_Down, NULL, 0,
|
||||
"cursor-down",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, "<Shift>", 0,
|
||||
"cursor-down-shift",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, "<Primary>", 0,
|
||||
"cursor-down-control",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, "<Alt>", 0,
|
||||
"cursor-down-alt",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, "<Shift><Primary>", 0,
|
||||
"cursor-down-shift-control",
|
||||
N_("Cursor Down") },
|
||||
{ GDK_KEY_Down, "<Shift><Alt>", 0,
|
||||
"cursor-down-shift-alt",
|
||||
N_("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",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, GDK_MOD1_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-left-shift-alt",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-left-shift-control",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, GDK_MOD1_MASK,
|
||||
"cursor-left-alt",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, GDK_CONTROL_MASK,
|
||||
"cursor-left-control",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, GDK_SHIFT_MASK,
|
||||
"cursor-left-shift",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, 0,
|
||||
{ GDK_KEY_Left, NULL, 0,
|
||||
"cursor-left",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, "<Shift>", 0,
|
||||
"cursor-left-shift",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, "<Primary>", 0,
|
||||
"cursor-left-control",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, "<Alt>", 0,
|
||||
"cursor-left-alt",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, "<Shift><Primary>", 0,
|
||||
"cursor-left-shift-control",
|
||||
N_("Cursor Left") },
|
||||
{ GDK_KEY_Left, "<Shift><Alt>", 0,
|
||||
"cursor-left-shift-alt",
|
||||
N_("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",
|
||||
{ GDK_KEY_Right, NULL, 0,
|
||||
"cursor-right",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, GDK_MOD1_MASK | GDK_CONTROL_MASK,
|
||||
"cursor-right-control-alt",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, GDK_MOD1_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-right-shift-alt",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
|
||||
"cursor-right-shift-control",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, GDK_MOD1_MASK,
|
||||
"cursor-right-alt",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, GDK_CONTROL_MASK,
|
||||
"cursor-right-control",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, GDK_SHIFT_MASK,
|
||||
{ GDK_KEY_Right, "<Shift>", 0,
|
||||
"cursor-right-shift",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, 0,
|
||||
"cursor-right",
|
||||
{ GDK_KEY_Right, "<Primary>", 0,
|
||||
"cursor-right-control",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, "<Alt>", 0,
|
||||
"cursor-right-alt",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, "<Shift><Primary>", 0,
|
||||
"cursor-right-shift-control",
|
||||
N_("Cursor Right") },
|
||||
{ GDK_KEY_Right, "<Shift><Alt>", 0,
|
||||
"cursor-right-shift-alt",
|
||||
N_("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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue