summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2018-06-06 18:07:56 +0200
committerFlorian Bruhin <git@the-compiler.org>2018-06-06 20:30:39 +0200
commitf48266f72f2b540f18e4ff712e7eea4a560277b7 (patch)
tree960d2bffa74ac28cfa038ff2e69e4a0e866f2cbb
parent5dac84896875a2c28758d43b8ab472c997055445 (diff)
downloadqutebrowser-f48266f72f2b540f18e4ff712e7eea4a560277b7.tar.gz
qutebrowser-f48266f72f2b540f18e4ff712e7eea4a560277b7.zip
Fix lint
(cherry picked from commit 7e31897dcc5b1b5e49719d2d0d1dc6908be36205)
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py2
-rw-r--r--qutebrowser/browser/webengine/webview.py7
-rw-r--r--qutebrowser/misc/miscwidgets.py11
3 files changed, 18 insertions, 2 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index ad53eee1c..87fbb1fc7 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, QWidget
+from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript
from qutebrowser.config import configdata, config
diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py
index be4ee334f..ea23ecca2 100644
--- a/qutebrowser/browser/webengine/webview.py
+++ b/qutebrowser/browser/webengine/webview.py
@@ -58,7 +58,12 @@ class WebEngineView(QWebEngineView):
self._layout = miscwidgets.PseudoLayout(self)
def render_widget(self):
- """Get the RenderWidgetHostViewQt for this view."""
+ """Get the RenderWidgetHostViewQt for this view.
+
+ Normally, this would always be the focusProxy().
+ However, it sometimes isn't, so we use this as a WORKAROUND for
+ https://bugreports.qt.io/browse/QTBUG-68727
+ """
proxy = self.focusProxy()
if proxy is not None:
return proxy
diff --git a/qutebrowser/misc/miscwidgets.py b/qutebrowser/misc/miscwidgets.py
index 9c2101ca7..eef127cf2 100644
--- a/qutebrowser/misc/miscwidgets.py
+++ b/qutebrowser/misc/miscwidgets.py
@@ -268,6 +268,15 @@ class WrapperLayout(QLayout):
class PseudoLayout(QLayout):
+ """A layout which isn't actually a real layout.
+
+ This is used to replace QWebEngineView's internal layout, as a WORKAROUND
+ for https://bugreports.qt.io/browse/QTBUG-68224 and other related issues.
+
+ This is partly inspired by https://codereview.qt-project.org/#/c/230894/
+ which does something similar as part of Qt.
+ """
+
def addItem(self, item):
assert self.parent() is not None
item.widget().setParent(self.parent())
@@ -285,11 +294,13 @@ class PseudoLayout(QLayout):
return self.parent().render_widget()
def setGeometry(self, rect):
+ """Resize the render widget when the view is resized."""
widget = self.widget()
if widget is not None:
widget.setGeometry(rect)
def sizeHint(self):
+ """Make sure the view has the sizeHint of the render widget."""
widget = self.widget()
if widget is not None:
return widget.sizeHint()