summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-06-08 12:18:47 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-06-08 12:18:47 +0200
commitbda7da04ff0c0e3bed7d0a61dc416074c0a2aac4 (patch)
tree1092772173041c9411e22cdc47612fb08a7035be
parent27887e815760cd5447135df09ac43bcf915c957d (diff)
downloadqutebrowser-bda7da04ff0c0e3bed7d0a61dc416074c0a2aac4.tar.gz
qutebrowser-bda7da04ff0c0e3bed7d0a61dc416074c0a2aac4.zip
nativeeventfilter: First refinements
-rw-r--r--qutebrowser/misc/nativeeventfilter.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/qutebrowser/misc/nativeeventfilter.py b/qutebrowser/misc/nativeeventfilter.py
index 46d8a5625..d84d6f62d 100644
--- a/qutebrowser/misc/nativeeventfilter.py
+++ b/qutebrowser/misc/nativeeventfilter.py
@@ -22,11 +22,13 @@
This entire file is a giant WORKAROUND for https://bugreports.qt.io/browse/QTBUG-114334.
"""
+from typing import Tuple
import ctypes
-from qutebrowser.qt.core import QAbstractNativeEventFilter
+from qutebrowser.qt.core import QAbstractNativeEventFilter, qVersion
from qutebrowser.misc import objects
+from qutebrowser.utils import log
# Needs to be saved to avoid garbage collection
@@ -52,9 +54,14 @@ class xcb_ge_generic_event_t(ctypes.Structure):
_XCB_GE_GENERIC = 35
_PROBLEMATIC_XINPUT_EVENTS = [
+ 18, # XCB_INPUT_TOUCH_BEGIN
+ 19, # XCB_INPUT_TOUCH_UPDATE
+ 20, # XCB_INPUT_TOUCH_END
+
27, # XCB_INPUT_GESTURE_PINCH_BEGIN
28, # XCB_INPUT_GESTURE_PINCH_UPDATE
29, # XCB_INPUT_GESTURE_PINCH_END
+
30, # XCB_INPUT_GESTURE_SWIPE_BEGIN
31, # XCB_INPUT_GESTURE_SWIPE_UPDATE
32, # XCB_INPUT_GESTURE_SWIPE_END
@@ -114,7 +121,7 @@ class NativeEventFilter(QAbstractNativeEventFilter):
event.extension == self.xinput_opcode and
event.event_type in _PROBLEMATIC_XINPUT_EVENTS
):
- print("Ignoring problematic XInput event", event.event_type)
+ log.misc.warning(f"Ignoring problematic XInput event {event.event_type}")
return (True, 0)
return (False, 0)
@@ -122,5 +129,13 @@ class NativeEventFilter(QAbstractNativeEventFilter):
def init() -> None:
global _instance
+
+ platform = objects.qapp.platformName()
+ qt_version = qVersion()
+ log.misc.debug(f"Platform {platform}, Qt {qt_version}")
+
+ if platform != 'xcb' or qt_version != '6.5.1':
+ return
+
_instance = NativeEventFilter()
objects.qapp.installNativeEventFilter(_instance)