From b1f1a0cafa87b8816fb851e2f0cfd81e2dbb08ce Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 23 May 2018 21:31:18 +0200 Subject: Add some more logging for #3920 (cherry picked from commit 17cfb0d39c9c726bdabb53ffa98095ac4405fbd4) --- qutebrowser/browser/mouse.py | 3 +++ qutebrowser/browser/webengine/webenginetab.py | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) 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 a7ec618ed..85d855e9f 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 @@ -41,7 +41,7 @@ from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory, webenginesettings) from qutebrowser.misc import miscwidgets from qutebrowser.utils import (usertypes, qtutils, log, javascript, utils, - message, objreg, jinja, debug) + message, objreg, jinja, debug, message) _qute_scheme_handler = None @@ -1052,7 +1052,13 @@ 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: -- cgit v1.2.3-54-g00ecf