diff options
author | Florian Bruhin <me@the-compiler.org> | 2023-08-18 01:30:37 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2023-08-18 01:30:37 +0200 |
commit | bee84309c5b5e34b9e57e5bfc15766c345dcadc7 (patch) | |
tree | f645bf4087045e5b08dceebdae59e1f73d08fc99 | |
parent | 856d4837245bb2961834766fff75bb694532fe5b (diff) | |
download | qutebrowser-bee84309c5b5e34b9e57e5bfc15766c345dcadc7.tar.gz qutebrowser-bee84309c5b5e34b9e57e5bfc15766c345dcadc7.zip |
Ignore drag events on Qt 6.5.2 on Wayland
Closes #7827
-rw-r--r-- | qutebrowser/keyinput/eventfilter.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/qutebrowser/keyinput/eventfilter.py b/qutebrowser/keyinput/eventfilter.py index 24d49709e..306d4405b 100644 --- a/qutebrowser/keyinput/eventfilter.py +++ b/qutebrowser/keyinput/eventfilter.py @@ -6,7 +6,7 @@ from typing import cast, Optional -from qutebrowser.qt.core import pyqtSlot, QObject, QEvent +from qutebrowser.qt.core import pyqtSlot, QObject, QEvent, qVersion from qutebrowser.qt.gui import QKeyEvent, QWindow from qutebrowser.keyinput import modeman @@ -84,6 +84,19 @@ class EventFilter(QObject): ev_type_str = debug.qenum_key(QEvent, ev_type) log.misc.debug(f"{source} got event: {ev_type_str}") + if ( + ev_type == QEvent.Type.DragEnter and + objects.qapp.platformName() == "wayland" and + qVersion() == "6.5.2" + ): + # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-115757 + # Fixed in Qt 6.5.3 + # Can't do this via self._handlers since handling it for QWindow + # seems to be too late. + log.mouse.warning("Ignoring drag event to prevent Qt crash") + event.ignore() + return True + if not isinstance(obj, QWindow): # We already handled this same event at some point earlier, so # we're not interested in it anymore. |