diff options
author | Florian Bruhin <git@the-compiler.org> | 2015-02-26 20:11:13 +0100 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2015-03-18 23:13:42 +0100 |
commit | f3b55d68db05247b5c3f5dc576dadb0aa1848ca3 (patch) | |
tree | 697bba5e93ba0544fa5f1fef8a0162265e213c9d | |
parent | 4bad99e39471b8dcfcda9ef5236f828ff75c2552 (diff) | |
download | qutebrowser-f3b55d68db05247b5c3f5dc576dadb0aa1848ca3.tar.gz qutebrowser-f3b55d68db05247b5c3f5dc576dadb0aa1848ca3.zip |
Simulate Ctrl-click when hinting in new tab/win.
This works around the fact some pages (e.g. github) load their content via AJAX
on a normal left click, so we'll never get acceptNavigationRequest and thus
can't open them in a new tab.
Fixes #488.
-rw-r--r-- | qutebrowser/browser/hints.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index e125e9e96..91d49bbbc 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -373,6 +373,10 @@ class HintManager(QObject): action = "Hovering" if target == Target.hover else "Clicking" log.hints.debug("{} on '{}' at {}/{}".format( action, elem, pos.x(), pos.y())) + if target in (Target.tab, Target.tab_bg, Target.window): + modifiers = Qt.ControlModifier + else: + modifiers = Qt.NoModifier events = [ QMouseEvent(QEvent.MouseMove, pos, Qt.NoButton, Qt.NoButton, Qt.NoModifier), @@ -381,9 +385,9 @@ class HintManager(QObject): self.set_open_target.emit(target.name) events += [ QMouseEvent(QEvent.MouseButtonPress, pos, Qt.LeftButton, - Qt.NoButton, Qt.NoModifier), + Qt.NoButton, modifiers), QMouseEvent(QEvent.MouseButtonRelease, pos, Qt.LeftButton, - Qt.NoButton, Qt.NoModifier), + Qt.NoButton, modifiers), ] for evt in events: self.mouse_event.emit(evt) |