--- a/WebBrowser/WebBrowserWindow.py Sun May 13 12:55:08 2018 +0200 +++ b/WebBrowser/WebBrowserWindow.py Sun May 13 12:57:00 2018 +0200 @@ -409,8 +409,11 @@ if not Preferences.getWebBrowser("StatusBarVisible"): self.statusBar().hide() - QDesktopServices.setUrlHandler("http", self.__linkActivated) - QDesktopServices.setUrlHandler("https", self.__linkActivated) + if not self.__fromEric and len(WebBrowserWindow.BrowserWindows): + QDesktopServices.setUrlHandler( + "http", WebBrowserWindow.BrowserWindows[0].urlHandler) + QDesktopServices.setUrlHandler( + "https", WebBrowserWindow.BrowserWindows[0].urlHandler) # setup connections self.__activating = False @@ -2851,9 +2854,22 @@ Preferences.setGeometry("WebBrowserGeometry", QByteArray()) try: + browserIndex = WebBrowserWindow.BrowserWindows.index(self) + if not self.__fromEric and len(WebBrowserWindow.BrowserWindows): + if browserIndex == 0: + if len(WebBrowserWindow.BrowserWindows) > 1: + # first window will be deleted + QDesktopServices.setUrlHandler( + "http", + WebBrowserWindow.BrowserWindows[1].urlHandler) + QDesktopServices.setUrlHandler( + "https", + WebBrowserWindow.BrowserWindows[1].urlHandler) + else: + QDesktopServices.unsetUrlHandler("http") + QDesktopServices.unsetUrlHandler("https") if self.__fromEric or len(WebBrowserWindow.BrowserWindows) > 0: - del WebBrowserWindow.BrowserWindows[ - WebBrowserWindow.BrowserWindows.index(self)] + del WebBrowserWindow.BrowserWindows[browserIndex] except ValueError: pass @@ -3394,11 +3410,22 @@ WebIconProvider.instance().showWebIconDialog() @pyqtSlot(QUrl) + def urlHandler(self, url): + """ + Private slot used as desktop URL handler. + + @param url URL to be handled + @type QUrl + """ + self.__linkActivated(url) + + @pyqtSlot(QUrl) def __linkActivated(self, url): """ Private slot to handle the selection of a link. - @param url URL to be shown (QUrl) + @param url URL to be shown + @type QUrl """ if not self.__activating: self.__activating = True