diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-02-18 09:44:50 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-02-18 09:44:50 -0500 |
commit | c92e82233239540d5430548a71453b8a7b604053 (patch) | |
tree | 3e309210ee830c28ab169954c371918772b15c05 /libs/gtkmm2ext/keyboard.cc | |
parent | dd7649a4090ba4c5e59ffc76e20ccaf96981705d (diff) |
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
Diffstat (limited to 'libs/gtkmm2ext/keyboard.cc')
-rw-r--r-- | libs/gtkmm2ext/keyboard.cc | 12 |
1 files changed, 12 insertions, 0 deletions
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); |