summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-08-18 01:30:37 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-08-18 01:30:37 +0200
commitbee84309c5b5e34b9e57e5bfc15766c345dcadc7 (patch)
treef645bf4087045e5b08dceebdae59e1f73d08fc99
parent856d4837245bb2961834766fff75bb694532fe5b (diff)
downloadqutebrowser-bee84309c5b5e34b9e57e5bfc15766c345dcadc7.tar.gz
qutebrowser-bee84309c5b5e34b9e57e5bfc15766c345dcadc7.zip
Ignore drag events on Qt 6.5.2 on Wayland
Closes #7827
-rw-r--r--qutebrowser/keyinput/eventfilter.py15
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.