diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index fa38999b5..fc14f825a 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -50,7 +50,7 @@ Fixed ~~~~~ - Work around an issue in Qt 5.11 where e.g. activating JavaScript per-domain - needed a manual relaod in some cases. + needed a manual reload in some cases. - Don't crash when a ² key is pressed (e.g. on AZERTY keyboards). v1.3.0 diff --git a/qutebrowser/browser/mouse.py b/qutebrowser/browser/mouse.py index 43d234322..5320bfa6b 100644 --- a/qutebrowser/browser/mouse.py +++ b/qutebrowser/browser/mouse.py @@ -58,6 +58,9 @@ class ChildEventFilter(QObject): if qtutils.version_check('5.11', compiled=False, exact=True): # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-68076 QTimer.singleShot(0, self._widget.setFocus) + elif event.type() == QEvent.ChildRemoved: + child = event.child() + log.mouse.debug("{}: removed child {}".format(obj, child)) return False diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 3fcc58738..4ce8b8bdd 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -30,7 +30,7 @@ from PyQt5.QtCore import (pyqtSignal, pyqtSlot, Qt, QEvent, QPoint, QPointF, QUrl, QTimer) from PyQt5.QtGui import QKeyEvent, QIcon from PyQt5.QtNetwork import QAuthenticator -from PyQt5.QtWidgets import QApplication +from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript from qutebrowser.config import configdata, config @@ -1035,8 +1035,9 @@ class WebEngineTab(browsertab.AbstractTab): log.config.debug( "Loading {} again because of config change".format( self._reload_url.toDisplayString())) - QTimer.singleShot(100, lambda url=self._reload_url: - self.openurl(url, predict=False)) + QTimer.singleShot(100, functools.partial(self.openurl, + self._reload_url, + predict=False)) self._reload_url = None if not qtutils.version_check('5.10', compiled=False): @@ -1060,7 +1061,14 @@ class WebEngineTab(browsertab.AbstractTab): # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-68224 layout = self._widget.layout() count = layout.count() + children = self._widget.findChildren(QWidget) + if not count and children: + log.webview.warning("Found children not in layout: {}, " + "focus proxy {} (QTBUG-68224)".format( + children, self._widget.focusProxy())) if count > 1: + log.webview.debug("Found {} widgets! (QTBUG-68224)" + .format(count)) for i in range(count): item = layout.itemAt(i) if item is None: