Merge branch 'master' of https://github.com/rikn00/qutebrowser into rikn00-master
This commit is contained in:
commit
07357a81e9
@ -145,6 +145,7 @@ Start hinting.
|
|||||||
- `tab`: Open the link in a new tab.
|
- `tab`: Open the link in a new tab.
|
||||||
- `tab-bg`: Open the link in a new background tab.
|
- `tab-bg`: Open the link in a new background tab.
|
||||||
- `window`: Open the link in a new window.
|
- `window`: Open the link in a new window.
|
||||||
|
- `hover` : Hover over the link.
|
||||||
- `yank`: Yank the link to the clipboard.
|
- `yank`: Yank the link to the clipboard.
|
||||||
- `yank-primary`: Yank the link to the primary selection.
|
- `yank-primary`: Yank the link to the primary selection.
|
||||||
- `fill`: Fill the commandline with the command given as
|
- `fill`: Fill the commandline with the command given as
|
||||||
|
@ -40,7 +40,7 @@ ElemTuple = collections.namedtuple('ElemTuple', ['elem', 'label'])
|
|||||||
|
|
||||||
|
|
||||||
Target = usertypes.enum('Target', ['normal', 'tab', 'tab_bg', 'window', 'yank',
|
Target = usertypes.enum('Target', ['normal', 'tab', 'tab_bg', 'window', 'yank',
|
||||||
'yank_primary', 'fill', 'rapid',
|
'yank_primary', 'fill', 'hover', 'rapid',
|
||||||
'rapid_win', 'download', 'userscript',
|
'rapid_win', 'download', 'userscript',
|
||||||
'spawn'])
|
'spawn'])
|
||||||
|
|
||||||
@ -115,6 +115,7 @@ class HintManager(QObject):
|
|||||||
Target.yank: "Yank hint to clipboard...",
|
Target.yank: "Yank hint to clipboard...",
|
||||||
Target.yank_primary: "Yank hint to primary selection...",
|
Target.yank_primary: "Yank hint to primary selection...",
|
||||||
Target.fill: "Set hint in commandline...",
|
Target.fill: "Set hint in commandline...",
|
||||||
|
Target.hover: "Hover over a hint...",
|
||||||
Target.rapid: "Follow hint (rapid mode)...",
|
Target.rapid: "Follow hint (rapid mode)...",
|
||||||
Target.rapid_win: "Follow hint in new window (rapid mode)...",
|
Target.rapid_win: "Follow hint in new window (rapid mode)...",
|
||||||
Target.download: "Download hint...",
|
Target.download: "Download hint...",
|
||||||
@ -335,22 +336,26 @@ class HintManager(QObject):
|
|||||||
target = Target.window
|
target = Target.window
|
||||||
else:
|
else:
|
||||||
target = self._context.target
|
target = self._context.target
|
||||||
self.set_open_target.emit(target.name)
|
|
||||||
# FIXME Instead of clicking the center, we could have nicer heuristics.
|
# FIXME Instead of clicking the center, we could have nicer heuristics.
|
||||||
# e.g. parse (-webkit-)border-radius correctly and click text fields at
|
# e.g. parse (-webkit-)border-radius correctly and click text fields at
|
||||||
# the bottom right, and everything else on the top left or so.
|
# the bottom right, and everything else on the top left or so.
|
||||||
# https://github.com/The-Compiler/qutebrowser/issues/70
|
# https://github.com/The-Compiler/qutebrowser/issues/70
|
||||||
pos = elem.rect_on_view().center()
|
pos = elem.rect_on_view().center()
|
||||||
log.hints.debug("Clicking on '{}' at {}/{}".format(
|
action = "Hovering" if target == Target.hover else "Clicking"
|
||||||
elem, pos.x(), pos.y()))
|
log.hints.debug("{} on '{}' at {}/{}".format(
|
||||||
events = (
|
action, elem, pos.x(), pos.y()))
|
||||||
|
events = [
|
||||||
QMouseEvent(QEvent.MouseMove, pos, Qt.NoButton, Qt.NoButton,
|
QMouseEvent(QEvent.MouseMove, pos, Qt.NoButton, Qt.NoButton,
|
||||||
Qt.NoModifier),
|
Qt.NoModifier),
|
||||||
QMouseEvent(QEvent.MouseButtonPress, pos, Qt.LeftButton,
|
]
|
||||||
Qt.NoButton, Qt.NoModifier),
|
if target != Target.hover:
|
||||||
QMouseEvent(QEvent.MouseButtonRelease, pos, Qt.LeftButton,
|
self.set_open_target.emit(target.name)
|
||||||
Qt.NoButton, Qt.NoModifier),
|
events += [
|
||||||
)
|
QMouseEvent(QEvent.MouseButtonPress, pos, Qt.LeftButton,
|
||||||
|
Qt.NoButton, Qt.NoModifier),
|
||||||
|
QMouseEvent(QEvent.MouseButtonRelease, pos, Qt.LeftButton,
|
||||||
|
Qt.NoButton, Qt.NoModifier),
|
||||||
|
]
|
||||||
for evt in events:
|
for evt in events:
|
||||||
self.mouse_event.emit(evt)
|
self.mouse_event.emit(evt)
|
||||||
|
|
||||||
@ -685,6 +690,7 @@ class HintManager(QObject):
|
|||||||
Target.window: self._click,
|
Target.window: self._click,
|
||||||
Target.rapid: self._click,
|
Target.rapid: self._click,
|
||||||
Target.rapid_win: self._click,
|
Target.rapid_win: self._click,
|
||||||
|
Target.hover: self._click,
|
||||||
# _download needs a QWebElement to get the frame.
|
# _download needs a QWebElement to get the frame.
|
||||||
Target.download: self._download,
|
Target.download: self._download,
|
||||||
}
|
}
|
||||||
|
@ -923,6 +923,7 @@ KEY_DATA = collections.OrderedDict([
|
|||||||
('hint all tab', ['F']),
|
('hint all tab', ['F']),
|
||||||
('hint all window', ['wf']),
|
('hint all window', ['wf']),
|
||||||
('hint all tab-bg', [';b']),
|
('hint all tab-bg', [';b']),
|
||||||
|
('hint all hover', [';h']),
|
||||||
('hint images', [';i']),
|
('hint images', [';i']),
|
||||||
('hint images tab', [';I']),
|
('hint images tab', [';I']),
|
||||||
('hint images tab-bg', ['.i']),
|
('hint images tab-bg', ['.i']),
|
||||||
|
Loading…
Reference in New Issue
Block a user