From 4616b632c5c73fce6d34e266f8f04eb8ded940b3 Mon Sep 17 00:00:00 2001 From: Faraphel Date: Sun, 24 Dec 2023 11:16:16 +0100 Subject: [PATCH] fixed a bug where href with a _blank target could not be opened --- source/widget/Browser.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/widget/Browser.py b/source/widget/Browser.py index af7ef0b..a8a1067 100644 --- a/source/widget/Browser.py +++ b/source/widget/Browser.py @@ -1,6 +1,7 @@ from typing import Optional from PyQt6.QtCore import QUrl +from PyQt6.QtWebEngineCore import QWebEngineNewWindowRequest from PyQt6.QtWebEngineWidgets import QWebEngineView from PyQt6.QtWidgets import QVBoxLayout, QWidget, QProgressBar, QStyle, QToolBar @@ -60,6 +61,8 @@ class Browser(QWidget): self._action_reload.triggered.connect(self.web.reload) # NOQA: connect exist self._action_forward.triggered.connect(self.web.forward) # NOQA: connect exist + self.web.page().newWindowRequested.connect(self._on_web_new_window_request) # NOQA: connect exist + # finalize the initialisation self.refresh_navigation_actions() @@ -85,3 +88,8 @@ class Browser(QWidget): # enable the navigation button depending on the history self._action_back.setEnabled(history.canGoBack()) self._action_forward.setEnabled(history.canGoForward()) + + def _on_web_new_window_request(self, request: QWebEngineNewWindowRequest): + # by default, the WebEngineView will ignore new window request + # instead the link that should be in a new window will be opened in the current one + self.web.setUrl(request.requestedUrl())