From 13d73359d4dda61f2f10c00901164c36ef512519 Mon Sep 17 00:00:00 2001 From: Jussi Timperi Date: Sat, 10 Sep 2016 16:07:29 +0300 Subject: [PATCH] QtWebKit: Handle visibility API closes #1886 --- qutebrowser/browser/webkit/webview.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/qutebrowser/browser/webkit/webview.py b/qutebrowser/browser/webkit/webview.py index ec0da7f17..67ca268fb 100644 --- a/qutebrowser/browser/webkit/webview.py +++ b/qutebrowser/browser/webkit/webview.py @@ -72,6 +72,9 @@ class WebView(QWebView): page = webpage.BrowserPage(self.win_id, self._tab_id, tab.data, parent=self) + page.setVisibilityState( + QWebPage.VisibilityStateVisible if self.isVisible() + else QWebPage.VisibilityStateHidden) self.setPage(page) mode_manager = objreg.get('mode-manager', scope='window', @@ -240,3 +243,27 @@ class WebView(QWebView): self.shutting_down.connect(menu.close) modeman.instance(self.win_id).entered.connect(menu.close) menu.exec_(e.globalPos()) + + def showEvent(self, e): + """Extend showEvent to set the page visibility state to visible. + + Args: + e: The QShowEvent. + + Return: + The superclass event return value. + """ + self.page().setVisibilityState(QWebPage.VisibilityStateVisible) + super().showEvent(e) + + def hideEvent(self, e): + """Extend hideEvent to set the page visibility state to hidden. + + Args: + e: The QHideEvent. + + Return: + The superclass event return value. + """ + self.page().setVisibilityState(QWebPage.VisibilityStateHidden) + super().hideEvent(e)