diff --git a/qutebrowser/browser/webkit/webview.py b/qutebrowser/browser/webkit/webview.py index ec0da7f17..94519fa86 100644 --- a/qutebrowser/browser/webkit/webview.py +++ b/qutebrowser/browser/webkit/webview.py @@ -72,6 +72,14 @@ class WebView(QWebView): page = webpage.BrowserPage(self.win_id, self._tab_id, tab.data, parent=self) + + try: + page.setVisibilityState( + QWebPage.VisibilityStateVisible if self.isVisible() + else QWebPage.VisibilityStateHidden) + except AttributeError: + pass + self.setPage(page) mode_manager = objreg.get('mode-manager', scope='window', @@ -240,3 +248,35 @@ 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. + """ + try: + self.page().setVisibilityState(QWebPage.VisibilityStateVisible) + except AttributeError: + pass + + 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. + """ + try: + self.page().setVisibilityState(QWebPage.VisibilityStateHidden) + except AttributeError: + pass + + super().hideEvent(e)