summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-06-07 22:02:11 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-06-07 22:02:11 +0200
commit16093eaf981cec0d71331679302470cad575d5af (patch)
treed5e322416e990adef0f15350e898bc17e2d49863
parenta71c25c2a092e9c59ed65ac3d21d761a26b447ab (diff)
downloadqutebrowser-16093eaf981cec0d71331679302470cad575d5af.tar.gz
qutebrowser-16093eaf981cec0d71331679302470cad575d5af.zip
Add debug flag to log all Qt events
-rw-r--r--doc/changelog.asciidoc1
-rw-r--r--qutebrowser/keyinput/eventfilter.py12
-rw-r--r--qutebrowser/qutebrowser.py2
3 files changed, 13 insertions, 2 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index cc9ca240d..551ba6a6a 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -52,6 +52,7 @@ Added
selection via rofi, and inserting TOTP-codes (experimental).
- New `colors.webpage.darkmode.increase_text_contrast` setting for Qt 6.3+
- New `fonts.tooltip`, `colors.tooltip.bg` and `colors.tooltip.fg` settings.
+- New `log-qt-events` debug flag for `-D`
Removed
~~~~~~~
diff --git a/qutebrowser/keyinput/eventfilter.py b/qutebrowser/keyinput/eventfilter.py
index 31ffcc7f9..6688e62eb 100644
--- a/qutebrowser/keyinput/eventfilter.py
+++ b/qutebrowser/keyinput/eventfilter.py
@@ -26,7 +26,7 @@ from qutebrowser.qt.gui import QKeyEvent, QWindow
from qutebrowser.keyinput import modeman
from qutebrowser.misc import quitter, objects
-from qutebrowser.utils import objreg
+from qutebrowser.utils import objreg, debug, log
class EventFilter(QObject):
@@ -47,6 +47,7 @@ class EventFilter(QObject):
QEvent.Type.KeyRelease: self._handle_key_event,
QEvent.Type.ShortcutOverride: self._handle_key_event,
}
+ self._log_qt_events = "log-qt-events" in objects.debug_flags
def install(self) -> None:
objects.qapp.installEventFilter(self)
@@ -86,6 +87,15 @@ class EventFilter(QObject):
Return:
True if the event should be filtered, False if it's passed through.
"""
+ if self._log_qt_events:
+ try:
+ source = repr(obj)
+ except AttributeError: # might not be fully initialized yet
+ source = type(obj).__name__
+
+ evtype = debug.qenum_key(QEvent.Type, event.type())
+ log.misc.debug(f"{source} got event: {evtype}")
+
if not isinstance(obj, QWindow):
# We already handled this same event at some point earlier, so
# we're not interested in it anymore.
diff --git a/qutebrowser/qutebrowser.py b/qutebrowser/qutebrowser.py
index f1273dee3..ab2488301 100644
--- a/qutebrowser/qutebrowser.py
+++ b/qutebrowser/qutebrowser.py
@@ -190,7 +190,7 @@ def debug_flag_error(flag):
'no-scroll-filtering', 'log-requests', 'log-cookies',
'log-scroll-pos', 'log-sensitive-keys', 'stack', 'chromium',
'wait-renderer-process', 'avoid-chromium-init', 'werror',
- 'test-notification-service']
+ 'test-notification-service', 'log-qt-events']
if flag in valid_flags:
return flag