diff options
author | Artur Shaik <ashaihullin@gmail.com> | 2015-04-09 22:55:42 +0600 |
---|---|---|
committer | Artur Shaik <ashaihullin@gmail.com> | 2015-04-09 22:55:42 +0600 |
commit | 695712e50c3871f00959b838909545ff12ae3d6b (patch) | |
tree | 1e0f2b5b7917442f5545faa5130d3c92e97f959b /qutebrowser/keyinput/modeman.py | |
parent | 068947ba7eb000a868d6e6c52d355097842c1ec7 (diff) | |
download | qutebrowser-695712e50c3871f00959b838909545ff12ae3d6b.tar.gz qutebrowser-695712e50c3871f00959b838909545ff12ae3d6b.zip |
Basic caret and visual modes implementation
Allow user switch in caret mode for browsing with caret, and visual mode
for select and yank text with keyboard.
Default keybindings is c or v for caret mode, and again v for visual mode. All
basic movements provided by WebAction enum implemened with vim-like
bindings. Yanking with y and Y for selection and clipboard respectively.
There is bug/feature in WebKit that after caret enabled, caret doesn't
show until mouse click (or sometimes Tab helps). So I add some workaround
for that with mouse event. I think should be better aproach.
Signed-off-by: Artur Shaik <ashaihullin@gmail.com>
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r-- | qutebrowser/keyinput/modeman.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py index 4699de8e9..d956cfc08 100644 --- a/qutebrowser/keyinput/modeman.py +++ b/qutebrowser/keyinput/modeman.py @@ -25,6 +25,7 @@ from PyQt5.QtGui import QWindow from PyQt5.QtCore import pyqtSignal, Qt, QObject, QEvent from PyQt5.QtWidgets import QApplication from PyQt5.QtWebKitWidgets import QWebView +from PyQt5.QtWebKit import QWebSettings from qutebrowser.keyinput import modeparsers, keyparser from qutebrowser.config import config @@ -79,6 +80,8 @@ def init(win_id, parent): KM.prompt: keyparser.PassthroughKeyParser(win_id, 'prompt', modeman, warn=False), KM.yesno: modeparsers.PromptKeyParser(win_id, modeman), + KM.caret: modeparsers.CaretKeyParser(win_id, modeman), + KM.visual: modeparsers.VisualKeyParser(win_id, modeman), } objreg.register('keyparsers', keyparsers, scope='window', window=win_id) modeman.destroyed.connect( @@ -93,6 +96,8 @@ def init(win_id, parent): passthrough=True) modeman.register(KM.prompt, keyparsers[KM.prompt].handle, passthrough=True) modeman.register(KM.yesno, keyparsers[KM.yesno].handle) + modeman.register(KM.caret, keyparsers[KM.caret].handle, passthrough=True) + modeman.register(KM.visual, keyparsers[KM.visual].handle, passthrough=True) return modeman |