From: Soren Stoutner Date: Thu, 20 Aug 2026 21:03:57 +0000 (-0700) Subject: Fix the loading of target="_blank" links in the current tab. https://redmine.stoutne... X-Git-Url: https://gitweb.stoutner.com/?a=commitdiff_plain;h=ebadbf5455ceab05ca2eace54698d01901ee515e;p=PrivacyBrowserPC.git Fix the loading of target="_blank" links in the current tab. https://redmine.stoutner.com/issues/1329 --- diff --git a/src/widgets/TemporaryWebEngineView.cpp b/src/widgets/TemporaryWebEngineView.cpp index a95b555..40371c0 100644 --- a/src/widgets/TemporaryWebEngineView.cpp +++ b/src/widgets/TemporaryWebEngineView.cpp @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: GPL-3.0-or-later - * SPDX-FileCopyrightText: 2025 Soren Stoutner + * SPDX-FileCopyrightText: 2025-2026 Soren Stoutner * * This file is part of Privacy Browser PC . * @@ -22,27 +22,28 @@ #include "TemporaryWebEngineView.h" // Construct the class. -TemporaryWebEngineView::TemporaryWebEngineView(PrivacyWebEngineView *mainPrivacyWebEngineViewPointer) : QWebEngineView() +TemporaryWebEngineView::TemporaryWebEngineView(PrivacyWebEngineView *privacyWebEngineViewPointer) : QWebEngineView() { + // Store the privacy WebEngine view pointer. + mainPrivacyWebEngineViewPointer = privacyWebEngineViewPointer; + // Create a WebEngine page using the same profile as the main privacy WebEngine, which is required in Qt 6. - // Sharing a profile somehow causes the URL to load in the main privacy WebEngine view. - PrivacyWebEnginePage *privacyWebEnginePagePointer = new PrivacyWebEnginePage(mainPrivacyWebEngineViewPointer->page()->profile()); + PrivacyWebEnginePage *privacyWebEnginePagePointer = new PrivacyWebEnginePage(privacyWebEngineViewPointer->page()->profile()); // Set the WebEngine page. setPage(privacyWebEnginePagePointer); // Connect the load started signal. - connect(this, SIGNAL(urlChanged(const QUrl&)), this, SLOT(stopLoadingUrl())); + connect(this, SIGNAL(urlChanged(const QUrl&)), this, SLOT(stopLoadingUrl(const QUrl&))); } -void TemporaryWebEngineView::stopLoadingUrl() +void TemporaryWebEngineView::stopLoadingUrl(const QUrl& url) { // Stop loading the URL. stop(); // Load the URL in the main privacy WebEngine view. - // For some reason, the URL already gets loaded there, possibly because they share a profile. - //mainPrivacyWebEngineViewPointer->load(url) + mainPrivacyWebEngineViewPointer->load(url); // Destroy the temporary WebEngine view. destroy(); diff --git a/src/widgets/TemporaryWebEngineView.h b/src/widgets/TemporaryWebEngineView.h index df57283..fe787d0 100644 --- a/src/widgets/TemporaryWebEngineView.h +++ b/src/widgets/TemporaryWebEngineView.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: GPL-3.0-or-later - * SPDX-FileCopyrightText: 2025 Soren Stoutner + * SPDX-FileCopyrightText: 2025-2026 Soren Stoutner * * This file is part of Privacy Browser PC . * @@ -37,6 +37,10 @@ public: private Q_SLOTS: // The private slots. - void stopLoadingUrl(); + void stopLoadingUrl(const QUrl&); + +private: + // The private variables. + PrivacyWebEngineView *mainPrivacyWebEngineViewPointer; }; #endif