From e55ceea11a8a96abc1d91e75cfd06da87bb91ed1 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 6 Oct 2011 16:43:23 +0200 Subject: [PATCH] app: handle MOD2 in GimpTool's generic modifier code because we "know" that it's used on the Mac and unfortunately there is no other way of knowing but simply knowing it... --- app/tools/gimptool.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/app/tools/gimptool.c b/app/tools/gimptool.c index 78aa9e1f63..4be372f523 100644 --- a/app/tools/gimptool.c +++ b/app/tools/gimptool.c @@ -825,6 +825,13 @@ gimp_tool_set_modifier_state (GimpTool *tool, display); } + if ((tool->modifier_state & GDK_MOD2_MASK) != (state & GDK_MOD2_MASK)) + { + gimp_tool_modifier_key (tool, GDK_MOD2_MASK, + (state & GDK_MOD2_MASK) ? TRUE : FALSE, state, + display); + } + tool->modifier_state = state; } @@ -923,6 +930,28 @@ gimp_tool_set_active_modifier_state (GimpTool *tool, } } + if ((tool->active_modifier_state & GDK_MOD2_MASK) != + (state & GDK_MOD2_MASK)) + { + gboolean press = state & GDK_MOD2_MASK; + +#ifdef DEBUG_ACTIVE_STATE + g_printerr ("%s: MOD2 %s\n", G_STRFUNC, + press ? "pressed" : "released"); +#endif + + if (! press && (tool->button_press_state & GDK_MOD2_MASK)) + { + tool->button_press_state &= ~GDK_MOD2_MASK; + } + else + { + gimp_tool_active_modifier_key (tool, GDK_MOD2_MASK, + press, state, + display); + } + } + tool->active_modifier_state = state; }