Disable child focus workaround on unaffected Qt versions
The workaround added for #7820 seems to cause datalist dropdowns to lose focus on Wayland. Let's just disable the old workaround on Qt versions that are not affected by the original issue, which seems to be Qt 6.6.3+. Fixes #8831.
This commit is contained in:
parent
9ae082b29b
commit
7e3df43463
|
|
@ -15,6 +15,17 @@ breaking changes (such as renamed commands) can happen in minor releases.
|
|||
// `Fixed` for any bug fixes.
|
||||
// `Security` to invite users to upgrade in case of vulnerabilities.
|
||||
|
||||
[[v3.6.4]]
|
||||
v3.6.4 (unreleased)
|
||||
-------------------
|
||||
|
||||
Fixed
|
||||
~~~~~
|
||||
|
||||
- datalist dropdowns not opening correctly on Wayland/Sway (#8831).
|
||||
This was caused by an old workaround for a different QtWebEngine issue,
|
||||
which is now disabled for QtWebEngine 6.6.3 and newer.
|
||||
|
||||
[[v3.6.3]]
|
||||
v3.6.3 (2025-11-30)
|
||||
-------------------
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from qutebrowser.qt.gui import QKeyEvent
|
|||
from qutebrowser.qt.widgets import QWidget
|
||||
|
||||
from qutebrowser.config import config
|
||||
from qutebrowser.utils import log, message, usertypes, qtutils
|
||||
from qutebrowser.utils import log, message, usertypes, qtutils, version, utils
|
||||
from qutebrowser.keyinput import modeman, keyutils
|
||||
|
||||
|
||||
|
|
@ -55,16 +55,16 @@ class ChildEventFilter(QObject):
|
|||
# - This is a child event filter on a tab (self._widget is not None)
|
||||
# - We find an old existing child which is a QQuickWidget and is
|
||||
# currently focused.
|
||||
# - We're using QtWebEngine >= 6.4 (older versions are not affected)
|
||||
# - We're using an affected QtWebEngine version
|
||||
children = [
|
||||
c for c in self._widget.findChildren(
|
||||
QWidget, "", Qt.FindChildOption.FindDirectChildrenOnly)
|
||||
if c is not child and
|
||||
c.hasFocus() and
|
||||
c.metaObject() is not None and
|
||||
c.metaObject().className() == "QQuickWidget"
|
||||
c.metaObject().className() == "QQuickWidget" # Qt 6.4+
|
||||
]
|
||||
if children:
|
||||
if children and version.qtwebengine_versions().webengine < utils.VersionNumber(6, 6, 3):
|
||||
log.misc.debug("Focusing new child")
|
||||
child.setFocus()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue