diff --git a/xpra/client/keyboard_helper.py b/xpra/client/keyboard_helper.py index 3a9a00bb02..05102b0e88 100644 --- a/xpra/client/keyboard_helper.py +++ b/xpra/client/keyboard_helper.py @@ -134,7 +134,7 @@ def _check_shortcut(self, window, key_name, modifiers, depressed, shortcut): extra_modifiers.remove(rm) except ValueError: pass #same modifier listed twice? - kmod = self.keyboard.get_keymap_modifiers()[0] + kmod, _, ignored = self.keyboard.get_keymap_modifiers() if not kmod and self.keyboard.modifier_keys: #fallback to server supplied map: kmod = self.keyboard.modifier_keys @@ -145,6 +145,9 @@ def _check_shortcut(self, window, key_name, modifiers, depressed, shortcut): mod = kmod.get(x) if mod in extra_modifiers: extra_modifiers.remove(mod) + for mod in ignored: + if mod in extra_modifiers: + extra_modifiers.remove(mod) if extra_modifiers: log("skipping partial shortcut match %s, modifiers unmatched: %s", shortcut, extra_modifiers) return False diff --git a/xpra/platform/xposix/keyboard.py b/xpra/platform/xposix/keyboard.py index c5ef1348a0..36fb212ebb 100644 --- a/xpra/platform/xposix/keyboard.py +++ b/xpra/platform/xposix/keyboard.py @@ -47,6 +47,7 @@ def do_get_keymap_modifiers(self): log.warn(" expect keyboard mapping problems") if is_Wayland(): log.warn(" (incomplete wayland support)") + return {}, [], ["mod2", ] return {}, [], [] try: with xsync: