summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
authorArtur Shaik <ashaihullin@gmail.com>2015-04-09 22:55:42 +0600
committerArtur Shaik <ashaihullin@gmail.com>2015-04-09 22:55:42 +0600
commit695712e50c3871f00959b838909545ff12ae3d6b (patch)
tree1e0f2b5b7917442f5545faa5130d3c92e97f959b /qutebrowser/keyinput/modeman.py
parent068947ba7eb000a868d6e6c52d355097842c1ec7 (diff)
downloadqutebrowser-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.py5
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