diff options
Diffstat (limited to 'qutebrowser/browser/eventfilter.py')
-rw-r--r-- | qutebrowser/browser/eventfilter.py | 51 |
1 files changed, 19 insertions, 32 deletions
diff --git a/qutebrowser/browser/eventfilter.py b/qutebrowser/browser/eventfilter.py index 0b5fab096..616798f9b 100644 --- a/qutebrowser/browser/eventfilter.py +++ b/qutebrowser/browser/eventfilter.py @@ -19,11 +19,11 @@ """Event handling for a browser tab.""" -from PyQt5.QtCore import QObject, QEvent, Qt, QTimer +from qutebrowser.qt import machinery +from qutebrowser.qt.core import QObject, QEvent, Qt, QTimer from qutebrowser.config import config -from qutebrowser.utils import message, log, usertypes, qtutils -from qutebrowser.misc import objects +from qutebrowser.utils import log, message, usertypes from qutebrowser.keyinput import modeman @@ -48,7 +48,7 @@ class ChildEventFilter(QObject): def eventFilter(self, obj, event): """Act on ChildAdded events.""" - if event.type() == QEvent.ChildAdded: + if event.type() == QEvent.Type.ChildAdded: child = event.child() log.misc.debug("{} got new child {}, installing filter" .format(obj, child)) @@ -58,7 +58,7 @@ class ChildEventFilter(QObject): assert obj is self._widget child.installEventFilter(self._filter) - elif event.type() == QEvent.ChildRemoved: + elif event.type() == QEvent.Type.ChildRemoved: child = event.child() log.misc.debug("{}: removed child {}".format(obj, child)) @@ -81,10 +81,9 @@ class TabEventFilter(QObject): super().__init__(parent) self._tab = tab self._handlers = { - QEvent.MouseButtonPress: self._handle_mouse_press, - QEvent.MouseButtonRelease: self._handle_mouse_release, - QEvent.Wheel: self._handle_wheel, - QEvent.KeyRelease: self._handle_key_release, + QEvent.Type.MouseButtonPress: self._handle_mouse_press, + QEvent.Type.MouseButtonRelease: self._handle_mouse_release, + QEvent.Type.Wheel: self._handle_wheel, } self._ignore_wheel_event = False self._check_insertmode_on_release = False @@ -99,10 +98,13 @@ class TabEventFilter(QObject): True if the event should be filtered, False otherwise. """ is_rocker_gesture = (config.val.input.mouse.rocker_gestures and - e.buttons() == Qt.LeftButton | Qt.RightButton) + e.buttons() == Qt.MouseButton.LeftButton | Qt.MouseButton.RightButton) - if e.button() in [Qt.XButton1, Qt.XButton2] or is_rocker_gesture: - self._mousepress_backforward(e) + if e.button() in [Qt.MouseButton.XButton1, Qt.MouseButton.XButton2] or is_rocker_gesture: + if not machinery.IS_QT6: + self._mousepress_backforward(e) + # FIXME:qt6 For some reason, this doesn't filter the action on + # Qt 6... return True self._ignore_wheel_event = True @@ -112,7 +114,7 @@ class TabEventFilter(QObject): log.mouse.warning("Ignoring invalid click at {}".format(pos)) return False - if e.button() != Qt.NoButton: + if e.button() != Qt.MouseButton.NoButton: self._tab.elements.find_at_pos(pos, self._mousepress_insertmode_cb) return False @@ -150,7 +152,7 @@ class TabEventFilter(QObject): if mode == usertypes.KeyMode.hint: return True - elif e.modifiers() & Qt.ControlModifier: + elif e.modifiers() & Qt.KeyboardModifier.ControlModifier: if mode == usertypes.KeyMode.passthrough: return False @@ -170,21 +172,6 @@ class TabEventFilter(QObject): return False - def _handle_key_release(self, e): - """Ignore repeated key release events going to the website. - - WORKAROUND for https://bugreports.qt.io/browse/QTBUG-77208 - - Args: - e: The QKeyEvent. - - Return: - True if the event should be filtered, False otherwise. - """ - return (e.isAutoRepeat() and - not qtutils.version_check('5.14', compiled=False) and - objects.backend == usertypes.Backend.QtWebEngine) - def _mousepress_insertmode_cb(self, elem): """Check if the clicked element is editable.""" if elem is None: @@ -240,17 +227,17 @@ class TabEventFilter(QObject): True if the event should be filtered, False otherwise. """ if (not config.val.input.mouse.back_forward_buttons and - e.button() in [Qt.XButton1, Qt.XButton2]): + e.button() in [Qt.MouseButton.XButton1, Qt.MouseButton.XButton2]): # Back and forward on mice are disabled return - if e.button() in [Qt.XButton1, Qt.LeftButton]: + if e.button() in [Qt.MouseButton.XButton1, Qt.MouseButton.LeftButton]: # Back button on mice which have it, or rocker gesture if self._tab.history.can_go_back(): self._tab.history.back() else: message.error("At beginning of history.") - elif e.button() in [Qt.XButton2, Qt.RightButton]: + elif e.button() in [Qt.MouseButton.XButton2, Qt.MouseButton.RightButton]: # Forward button on mice which have it, or rocker gesture if self._tab.history.can_go_forward(): self._tab.history.forward() |