diff -r 0a74c1efab70 -r 0daf79d65080 WebBrowser/WebBrowserView.py --- a/WebBrowser/WebBrowserView.py Mon Apr 02 12:04:56 2018 +0200 +++ b/WebBrowser/WebBrowserView.py Tue May 01 12:03:52 2018 +0200 @@ -95,6 +95,7 @@ self.__createNewPage() self.__mw = mainWindow + self.__tabWidget = parent self.__isLoading = False self.__progress = 0 self.__siteIconLoader = None @@ -135,7 +136,8 @@ if qVersionTuple() >= (5, 8, 0): if self.parentWidget() is not None: self.parentWidget().installEventFilter(self) - + + if qVersionTuple() >= (5, 8, 0) and qVersionTuple() < (5, 11, 0): lay = self.layout() lay.currentChanged.connect( lambda: QTimer.singleShot(0, self.__setRwhvqt)) @@ -182,6 +184,16 @@ """ return self.__mw + def tabWidget(self): + """ + Public method to get a reference to the tab widget containing this + view. + + @return reference to the tab widget + @rtype WebBrowserTabWidget + """ + return self.__tabWidget + def load(self, url): """ Public method to load a web site. @@ -1488,6 +1500,10 @@ @return flag indicating that the event should be filtered out @rtype bool """ + if obj is self and evt.type() == QEvent.ParentChange and \ + self.parentWidget() is not None: + self.parentWidget().installEventFilter(self) + # find the render widget receiving events for the web page if qVersionTuple() < (5, 8, 0): if obj is self and evt.type() == QEvent.ChildAdded: @@ -1499,10 +1515,9 @@ self.grabGesture(Qt.PinchGesture) self.__rwhvqt.grabGesture(Qt.PinchGesture) self.__rwhvqt.installEventFilter(self) - else: - if obj is self and evt.type() == QEvent.ParentChange and \ - self.parentWidget() is not None: - self.parentWidget().installEventFilter(self) + elif qVersionTuple() >= (5, 11, 0): + if obj is self and evt.type() == QEvent.ChildAdded: + QTimer.singleShot(0, self.__setRwhvqt) # forward events to WebBrowserView if obj is self.__rwhvqt and \