From 78823719585304ebbb5c41d134f1db00a9fb0b8d Mon Sep 17 00:00:00 2001 From: jakanakae-envangel Date: Tue, 13 Mar 2018 18:24:55 +0100 Subject: [PATCH] Use ignore_event attribute on events --- qutebrowser/keyinput/modeparsers.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/qutebrowser/keyinput/modeparsers.py b/qutebrowser/keyinput/modeparsers.py index 5ffe5a416..218fc70c9 100644 --- a/qutebrowser/keyinput/modeparsers.py +++ b/qutebrowser/keyinput/modeparsers.py @@ -142,7 +142,6 @@ class PassthroughKeyParser(CommandKeyParser): Attributes: _mode: The mode this keyparser is for. _orig_sequence: Current sequence with no key_mappings applied. - _ignore_next_key: Whether to pass the next key through. """ do_log = False @@ -160,7 +159,6 @@ class PassthroughKeyParser(CommandKeyParser): self._read_config(mode) self._orig_sequence = keyutils.KeySequence() self._mode = mode - self._ignore_next_key = False def __repr__(self): return utils.get_repr(self, mode=self._mode) @@ -176,8 +174,8 @@ class PassthroughKeyParser(CommandKeyParser): Return: A self.Match member. """ - if keyutils.is_modifier_key(e.key()) or self._ignore_next_key: - self._ignore_next_key = self._ignore_next_key and dry_run + if (keyutils.is_modifier_key(e.key()) or + getattr(e, "ignore_event", False)): return QKeySequence.NoMatch orig_sequence = self._orig_sequence.append_event(e) @@ -193,9 +191,12 @@ class PassthroughKeyParser(CommandKeyParser): if window is None: return match - self._ignore_next_key = True + first = True for keyinfo in orig_sequence: press_event = keyinfo.to_event(QEvent.KeyPress) + if first: + press_event.ignore_event = True + first = False release_event = keyinfo.to_event(QEvent.KeyRelease) QApplication.postEvent(window, press_event) QApplication.postEvent(window, release_event)