summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r--qutebrowser/keyinput/modeman.py24
1 files changed, 13 insertions, 11 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index 24c701401..671c2519e 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -23,8 +23,8 @@ import functools
import dataclasses
from typing import Mapping, Callable, MutableMapping, Union, Set, cast
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QObject, QEvent
-from PyQt5.QtGui import QKeyEvent
+from qutebrowser.qt.core import pyqtSlot, pyqtSignal, Qt, QObject, QEvent
+from qutebrowser.qt.gui import QKeyEvent, QKeySequence
from qutebrowser.commands import runners
from qutebrowser.keyinput import modeparsers, basekeyparser
@@ -51,17 +51,19 @@ class KeyEvent:
press/release.
Attributes:
- key: A Qt.Key member (QKeyEvent::key).
+ key: Usually a Qt.Key member, but could be other ints (QKeyEvent::key).
text: A string (QKeyEvent::text).
"""
- key: Qt.Key
+ # int instead of Qt.Key:
+ # WORKAROUND for https://www.riverbankcomputing.com/pipermail/pyqt/2022-April/044607.html
+ key: int
text: str
@classmethod
def from_event(cls, event: QKeyEvent) -> 'KeyEvent':
"""Initialize a KeyEvent from a QKeyEvent."""
- return cls(Qt.Key(event.key()), event.text())
+ return cls(event.key(), event.text())
class NotInModeError(Exception):
@@ -290,14 +292,14 @@ class ModeManager(QObject):
match = parser.handle(event, dry_run=dry_run)
has_modifier = event.modifiers() not in [
- Qt.NoModifier,
- Qt.ShiftModifier,
+ Qt.KeyboardModifier.NoModifier,
+ Qt.KeyboardModifier.ShiftModifier,
] # type: ignore[comparison-overlap]
is_non_alnum = has_modifier or not event.text().strip()
forward_unbound_keys = config.cache['input.forward_unbound_keys']
- if match:
+ if match != QKeySequence.SequenceMatch.NoMatch:
filter_this = True
elif (parser.passthrough or forward_unbound_keys == 'all' or
(forward_unbound_keys == 'auto' and is_non_alnum)):
@@ -460,9 +462,9 @@ class ModeManager(QObject):
True if event should be filtered, False otherwise.
"""
handlers: Mapping[QEvent.Type, Callable[[QKeyEvent], bool]] = {
- QEvent.KeyPress: self._handle_keypress,
- QEvent.KeyRelease: self._handle_keyrelease,
- QEvent.ShortcutOverride:
+ QEvent.Type.KeyPress: self._handle_keypress,
+ QEvent.Type.KeyRelease: self._handle_keyrelease,
+ QEvent.Type.ShortcutOverride:
functools.partial(self._handle_keypress, dry_run=True),
}
handler = handlers[event.type()]