diff --git a/lib/pynput/keyboard/__init__.py b/lib/pynput/keyboard/__init__.py index 240ad274..838c51f7 100644 --- a/lib/pynput/keyboard/__init__.py +++ b/lib/pynput/keyboard/__init__.py @@ -176,7 +176,7 @@ def press(self, key): :param key: The key being pressed. :type key: Key or KeyCode """ - if key in self._keys and key not in self._state: + if key not in self._state: self._state.add(key) if self._state == self._keys: self._on_activate() @@ -193,7 +193,7 @@ def release(self, key): class GlobalHotKeys(Listener): """A keyboard listener supporting a number of global hotkeys. - + This is a convenience wrapper to simplify registering a number of global hotkeys. diff --git a/tests/keyboard_hotkey_tests.py b/tests/keyboard_hotkey_tests.py index 4d03afc3..20bcb783 100644 --- a/tests/keyboard_hotkey_tests.py +++ b/tests/keyboard_hotkey_tests.py @@ -140,12 +140,15 @@ def test_hotkeys(self): q = queue.Queue() with GlobalHotKeys({ + '+a': lambda: q.put('x'), '++a': lambda: q.put('a'), '++b': lambda: q.put('b'), '++c': lambda: q.put('c')}): + notify('Press ++a') + self.assertNotEqual('x', q.get()) self.assertEqual('a', q.get()) - + notify('Press ++b') self.assertEqual('b', q.get())