diff options
-rw-r--r-- | packages/gtk+.py | 2 | ||||
-rw-r--r-- | packages/patches/gdk-quartz-set-fix-modifiers-hack-v2.patch (renamed from packages/patches/gdk-quartz-set-fix-modifiers-hack.patch) | 49 |
2 files changed, 42 insertions, 9 deletions
diff --git a/packages/gtk+.py b/packages/gtk+.py index bd016c9..3f35318 100644 --- a/packages/gtk+.py +++ b/packages/gtk+.py @@ -21,7 +21,7 @@ class GtkPackage (GnomePackage): 'http://bugzilla-attachments.gnome.org/attachment.cgi?id=201916', # make new modifier behviour opt-in, so as not to break old versions of MonoDevelop - 'patches/gdk-quartz-set-fix-modifiers-hack.patch', + 'patches/gdk-quartz-set-fix-modifiers-hack-v2.patch', ]) def prep (self): diff --git a/packages/patches/gdk-quartz-set-fix-modifiers-hack.patch b/packages/patches/gdk-quartz-set-fix-modifiers-hack-v2.patch index 8d5fdc3..91a14e0 100644 --- a/packages/patches/gdk-quartz-set-fix-modifiers-hack.patch +++ b/packages/patches/gdk-quartz-set-fix-modifiers-hack-v2.patch @@ -1,8 +1,8 @@ diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c -index 2889097..f333e13 100644 +index a8800f7..ec6a893 100644 --- a/gdk/quartz/gdkevents-quartz.c +++ b/gdk/quartz/gdkevents-quartz.c -@@ -277,10 +277,19 @@ get_keyboard_modifiers_from_ns_event (NSEvent *nsevent) +@@ -292,10 +292,19 @@ get_keyboard_modifiers_from_ns_flags (NSUInteger nsflags) modifiers |= GDK_SHIFT_MASK; if (nsflags & NSControlKeyMask) modifiers |= GDK_CONTROL_MASK; @@ -26,7 +26,7 @@ index 2889097..f333e13 100644 return modifiers; } -@@ -920,7 +929,7 @@ fill_key_event (GdkWindow *window, +@@ -930,7 +939,7 @@ fill_key_event (GdkWindow *window, { case GDK_Meta_R: case GDK_Meta_L: @@ -35,7 +35,7 @@ index 2889097..f333e13 100644 break; case GDK_Shift_R: case GDK_Shift_L: -@@ -931,7 +940,7 @@ fill_key_event (GdkWindow *window, +@@ -941,7 +950,7 @@ fill_key_event (GdkWindow *window, break; case GDK_Alt_R: case GDK_Alt_L: @@ -44,6 +44,18 @@ index 2889097..f333e13 100644 break; case GDK_Control_R: case GDK_Control_L: +@@ -1089,9 +1098,9 @@ _gdk_quartz_events_get_current_keyboard_modifiers (void) + if (carbon_modifiers & controlKey) + modifiers |= GDK_CONTROL_MASK; + if (carbon_modifiers & optionKey) +- modifiers |= GDK_MOD1_MASK; ++ modifiers |= (gdk_quartz_get_fix_modifiers () ? GDK_MOD1_MASK : GDK_MOD2_MASK); + if (carbon_modifiers & cmdKey) +- modifiers |= GDK_MOD2_MASK; ++ modifiers |= (gdk_quartz_get_fix_modifiers () ? GDK_MOD2_MASK : GDK_MOD1_MASK); + + return modifiers; + } diff --git a/gdk/quartz/gdkglobals-quartz.c b/gdk/quartz/gdkglobals-quartz.c index 53c6d5e..31dbab1 100644 --- a/gdk/quartz/gdkglobals-quartz.c @@ -67,10 +79,24 @@ index 53c6d5e..31dbab1 100644 + return fix_modifiers; +} diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c -index 5b4a79a..03c260b 100644 +index 19a20f5..94298ae 100644 --- a/gdk/quartz/gdkkeys-quartz.c +++ b/gdk/quartz/gdkkeys-quartz.c -@@ -712,16 +712,18 @@ void +@@ -693,11 +693,11 @@ gdk_keymap_translate_keyboard_state (GdkKeymap *keymap, + for (bit = GDK_SHIFT_MASK; bit < GDK_BUTTON1_MASK; bit <<= 1) + { + if (translate_keysym (hardware_keycode, +- (bit == GDK_MOD1_MASK) ? 0 : group, ++ (bit == (gdk_quartz_get_fix_modifiers () ? GDK_MOD1_MASK : GDK_MOD2_MASK)) ? 0 : group, + state & ~bit, + NULL, NULL) != + translate_keysym (hardware_keycode, +- (bit == GDK_MOD1_MASK) ? 1 : group, ++ (bit == (gdk_quartz_get_fix_modifiers () ? GDK_MOD1_MASK : GDK_MOD2_MASK)) ? 1 : group, + state | bit, + NULL, NULL)) + tmp_modifiers |= bit; +@@ -718,16 +718,18 @@ void gdk_keymap_add_virtual_modifiers (GdkKeymap *keymap, GdkModifierType *state) { @@ -108,7 +134,7 @@ index 742d651..ed0ba35 100644 #endif /* __GDK_QUARTZ_H__ */ diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h -index 53afe0e..af94a83 100644 +index 6386c32..aa1cc74 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -122,7 +122,7 @@ gboolean _gtk_fnmatch (const char *pattern, @@ -120,7 +146,7 @@ index 53afe0e..af94a83 100644 #endif #ifndef GDK_WINDOWING_QUARTZ -@@ -130,7 +130,7 @@ gboolean _gtk_fnmatch (const char *pattern, +@@ -130,13 +130,13 @@ gboolean _gtk_fnmatch (const char *pattern, #define GTK_MODIFY_SELECTION_MOD_MASK GDK_CONTROL_MASK #else #define GTK_EXTEND_SELECTION_MOD_MASK GDK_SHIFT_MASK @@ -128,4 +154,11 @@ index 53afe0e..af94a83 100644 +#define GTK_MODIFY_SELECTION_MOD_MASK (gdk_quartz_get_fix_modifiers () ? GDK_MOD2_MASK : GDK_MOD1_MASK) #endif + #ifndef GDK_WINDOWING_QUARTZ + #define GTK_TOGGLE_GROUP_MOD_MASK 0 + #else +-#define GTK_TOGGLE_GROUP_MOD_MASK GDK_MOD1_MASK ++#define GTK_TOGGLE_GROUP_MOD_MASK (gdk_quartz_get_fix_modifiers () ? GDK_MOD1_MASK : 0) + #endif + gboolean _gtk_button_event_triggers_context_menu (GdkEventButton *event); |