WebBrowser/WebBrowserView.py

changeset 5630
11670490db05
parent 5626
0b335d29dd51
child 5631
d0beabfaad42
diff -r 1df33bb9df28 -r 11670490db05 WebBrowser/WebBrowserView.py
--- a/WebBrowser/WebBrowserView.py	Sat Mar 18 12:05:31 2017 +0100
+++ b/WebBrowser/WebBrowserView.py	Sat Mar 18 13:05:41 2017 +0100
@@ -122,8 +122,26 @@
         self.__inspector = None
         WebInspector.registerView(self)
         
+        if qVersion() >= "5.8.0":
+            lay = self.layout()
+            lay.currentChanged.connect(
+                lambda: QTimer.singleShot(0, self.__setRwhvqt))
+            self.__setRwhvqt()
+        
         self.grabGesture(Qt.PinchGesture)
     
+    def __setRwhvqt(self):
+        """
+        Private slot to set widget that receives input events.
+        """
+        self.grabGesture(Qt.PinchGesture)
+        self.__rwhvqt = self.focusProxy()
+        if self.__rwhvqt:
+            self.__rwhvqt.grabGesture(Qt.PinchGesture)
+            self.__rwhvqt.installEventFilter(self)
+        else:
+            print("Focus proxy is null!")   # __IGNORE_WARNING_M801__
+    
     def __currentEngineChanged(self):
         """
         Private slot to track a change of the current search engine.
@@ -1371,14 +1389,16 @@
         @rtype bool
         """
         # find the render widget receiving events for the web page
-        if obj is self and evt.type() == QEvent.ChildAdded:
-            child = evt.child()
-            if child and child.inherits(
-                    "QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget"):
-                self.__rwhvqt = child
-                self.grabGesture(Qt.PinchGesture)
-                self.__rwhvqt.grabGesture(Qt.PinchGesture)
-                self.__rwhvqt.installEventFilter(self)
+        if qVersion() < "5.8.0":
+            if obj is self and evt.type() == QEvent.ChildAdded:
+                child = evt.child()
+                if child and child.inherits(
+                        "QtWebEngineCore::"
+                        "RenderWidgetHostViewQtDelegateWidget"):
+                    self.__rwhvqt = child
+                    self.grabGesture(Qt.PinchGesture)
+                    self.__rwhvqt.grabGesture(Qt.PinchGesture)
+                    self.__rwhvqt.installEventFilter(self)
         
         # forward events to WebBrowserView
         if obj is self.__rwhvqt:

eric ide

mercurial