diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index ce18321c7..7c855c75b 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1113,7 +1113,7 @@ class CommandDispatcher: if QWebSettings.globalSettings().testAttribute( QWebSettings.JavascriptEnabled): if tab: - page.open_target = usertypes.ClickTarget.tab + widget.set_open_target(usertypes.ClickTarget.tab) widget.run_js_async( 'window.getSelection().anchorNode.parentNode.click()') else: diff --git a/qutebrowser/browser/tab.py b/qutebrowser/browser/tab.py index e094e22ac..004d7ae77 100644 --- a/qutebrowser/browser/tab.py +++ b/qutebrowser/browser/tab.py @@ -462,6 +462,10 @@ class AbstractTab(QWidget): def icon(self): raise NotImplementedError + def set_open_target(self, target): + """Select where the next navigation request should open.""" + raise NotImplementedError + def __repr__(self): url = utils.elide(self.cur_url.toDisplayString(QUrl.EncodeUnicode), 100) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 9d9cadbba..b942c6038 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -155,6 +155,9 @@ class WebEngineViewTab(tab.AbstractTab): def icon(self): return self._widget.icon() + def set_open_target(self, target): + raise NotImplementedError + def _connect_signals(self): view = self._widget page = view.page() diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 3080187fe..4e8ec0802 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -464,6 +464,9 @@ class WebViewTab(tab.AbstractTab): def title(self): return self._widget.title() + def set_open_target(self, target): + self._widget.page().open_target = target + def _connect_signals(self): view = self._widget page = view.page()