From c92e82233239540d5430548a71453b8a7b604053 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 18 Feb 2016 09:44:50 -0500 Subject: remove HYPER,SUPER,META modifier masks from Keyboard::RelevantModifierMask so that modifier_state_equals() works on OS X GTK on OS X adds META when Command is pressed even though it also uses MOD2 to indicate COMMAND. So Cmd-w was actually META-MOD2-w and modifier_state_equals(MOD2) would fail. This should have nothing but good side effects --- libs/gtkmm2ext/keyboard.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libs/gtkmm2ext/keyboard.cc') diff --git a/libs/gtkmm2ext/keyboard.cc b/libs/gtkmm2ext/keyboard.cc index 3d329faa0d..0f9aeb028f 100644 --- a/libs/gtkmm2ext/keyboard.cc +++ b/libs/gtkmm2ext/keyboard.cc @@ -143,6 +143,18 @@ Keyboard::Keyboard () RelevantModifierKeyMask = (GdkModifierType) gtk_accelerator_get_default_mod_mask (); +#ifdef __APPLE__ + /* Remove SUPER,HYPER,META. + * + * GTK on OS X adds META when Command is pressed for various indefensible reasons, since + * it also uses MOD2 to indicate Command. + */ + + RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask & ~GDK_SUPER_MASK); + RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask & ~GDK_HYPER_MASK); + RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask & ~GDK_META_MASK); +#endif + RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | PrimaryModifier); RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | SecondaryModifier); RelevantModifierKeyMask = GdkModifierType (RelevantModifierKeyMask | TertiaryModifier); -- cgit v1.2.3