WebBrowser/WebBrowserPage.py

changeset 6692
c104c120e043
parent 6662
0002926e71d3
child 6695
0a51887c13cd
--- a/WebBrowser/WebBrowserPage.py	Fri Feb 01 19:18:45 2019 +0100
+++ b/WebBrowser/WebBrowserPage.py	Fri Feb 01 20:15:03 2019 +0100
@@ -28,6 +28,7 @@
 from .JavaScript.ExternalJsObject import ExternalJsObject
 
 from .Tools.WebHitTestResult import WebHitTestResult
+from .Tools import Scripts
 
 import Preferences
 from Globals import qVersionTuple
@@ -83,6 +84,12 @@
         
         self.urlChanged.connect(self.__urlChanged)
         
+        try:
+            self.contentsSizeChanged.connect(self.__contentsSizeChanged)
+        except AttributeError:
+            # defined for Qt >= 5.7
+            pass
+        
         self.__printer = None
         self.__badSite = False
         
@@ -466,6 +473,17 @@
         loop.exec_()
         return resultDict["res"]
     
+    def __contentsSizeChanged(self, size):
+        """
+        Private slot to work around QWebEnginePage not scrolling to anchors
+        when opened in a background tab.
+        
+        @param size changed contents size (unused)
+        @type QSize
+        """
+        fragment = self.url().fragment()
+        self.runJavaScript(Scripts.scrollToAnchor(fragment))
+    
     ##############################################
     ## Methods below deal with JavaScript messages
     ##############################################

eric ide

mercurial