summaryrefslogtreecommitdiff
path: root/qutebrowser
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-01-05 16:33:20 +0100
committerFlorian Bruhin <me@the-compiler.org>2022-01-05 16:33:20 +0100
commit9ce7b48f46812dab0554114d315f62b0bd12a40d (patch)
treee443f503ce0455b773986e50577d6de2b5773b58 /qutebrowser
parent74d0d4d9573d060908efa9a1e08411878be4587f (diff)
parent887488f870424663917fd51f06ce3c202f0b2773 (diff)
downloadqutebrowser-9ce7b48f46812dab0554114d315f62b0bd12a40d.tar.gz
qutebrowser-9ce7b48f46812dab0554114d315f62b0bd12a40d.zip
Merge remote-tracking branch 'origin/pr/6626'
Diffstat (limited to 'qutebrowser')
-rw-r--r--qutebrowser/browser/webengine/notification.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index e943e44e9..69c702aec 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -65,7 +65,7 @@ if TYPE_CHECKING:
from qutebrowser.config import config
from qutebrowser.misc import objects
-from qutebrowser.utils import qtutils, log, utils, debug, message, version
+from qutebrowser.utils import qtutils, log, utils, debug, message, version, objreg
from qutebrowser.qt import sip
@@ -368,6 +368,17 @@ class NotificationBridgePresenter(QObject):
# https://www.riverbankcomputing.com/pipermail/pyqt/2020-May/042918.html
log.misc.debug(f"Ignoring click request for notification {notification_id} "
"due to PyQt bug")
+ return
+ self._focus_first_matching_tab(notification)
+
+ def _focus_first_matching_tab(self, notification: "QWebEngineNotification") -> None:
+ for win_id in objreg.window_registry:
+ tabbedbrowser = objreg.get("tabbed-browser", window=win_id, scope="window")
+ for idx, tab in enumerate(tabbedbrowser.widgets()):
+ if tab.url().matches(notification.origin(), QUrl.RemovePath):
+ tabbedbrowser.widget.setCurrentIndex(idx)
+ return
+ log.misc.debug(f"No matching tab found for {notification.origin()}")
def _drop_adapter(self) -> None:
"""Drop the currently active adapter (if any).