From 704d0b825895b988c2d73ab9b6dd862dc1c3e22b Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 16 Aug 2023 21:58:40 +0200 Subject: child event filter: Loosen check to only consider QWidget Follow-up to a46e9f2036595e8d04cae68a719e5182718861bf to work correctly with older Qt versions (< 6.4), where this is not a QQuickWidget apparently. This also means we can simplify the workaround, as we are guaranteed to be on Qt 6.4+ anyways. See #7820, #7831 --- qutebrowser/browser/eventfilter.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/qutebrowser/browser/eventfilter.py b/qutebrowser/browser/eventfilter.py index cd011e846..1cff11ac4 100644 --- a/qutebrowser/browser/eventfilter.py +++ b/qutebrowser/browser/eventfilter.py @@ -9,9 +9,8 @@ from qutebrowser.qt.core import QObject, QEvent, Qt, QTimer from qutebrowser.qt.widgets import QWidget from qutebrowser.config import config -from qutebrowser.utils import log, message, usertypes, qtutils, version, utils +from qutebrowser.utils import log, message, usertypes, qtutils from qutebrowser.keyinput import modeman -from qutebrowser.misc import objects class ChildEventFilter(QObject): @@ -37,7 +36,8 @@ class ChildEventFilter(QObject): """Act on ChildAdded events.""" if event.type() == QEvent.Type.ChildAdded: child = event.child() - if child.metaObject().className() != "QQuickWidget": + if not isinstance(child, QWidget): + # Can e.g. happen when dragging text log.misc.debug(f"Ignoring new child {qtutils.qobj_repr(child)}") return False @@ -63,12 +63,7 @@ class ChildEventFilter(QObject): c.metaObject() is not None and c.metaObject().className() == "QQuickWidget" ] - if ( - children and - objects.backend == usertypes.Backend.QtWebEngine and - version.qtwebengine_versions().webengine >= - utils.VersionNumber(6, 4) - ): + if children: log.misc.debug("Focusing new child") child.setFocus() -- cgit v1.2.3-54-g00ecf