summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
authorMarc Jauvin <marc.jauvin@gmail.com>2018-02-12 18:10:22 -0500
committerMarc Jauvin <marc.jauvin@gmail.com>2018-02-12 18:10:22 -0500
commitd04fc291632a50058e7bbfabe33390175176dac6 (patch)
tree4426fef121d24fe86fd7086af7ebf8496772b518 /qutebrowser/keyinput/modeman.py
parentc736cdf87faff1dd3964b25f0abe4dfa48df8438 (diff)
downloadqutebrowser-d04fc291632a50058e7bbfabe33390175176dac6.tar.gz
qutebrowser-d04fc291632a50058e7bbfabe33390175176dac6.zip
save input_mode when entering/leaving mode
instead of when changing tab
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r--qutebrowser/keyinput/modeman.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index e32830f50..5204c8068 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -267,6 +267,11 @@ class ModeManager(QObject):
raise cmdexc.CommandError(
"Mode {} can't be entered manually!".format(mode))
+ if (config.val.tabs.mode_on_change == 'restore' and
+ m.name in ['insert', 'passthrough']):
+ window = objreg.get('main-window', scope='window',
+ window=self._win_id)
+ window.tabbed_browser.currentWidget().data.input_mode = m
self.enter(m, 'command')
@pyqtSlot(usertypes.KeyMode, str, bool)
@@ -301,6 +306,11 @@ class ModeManager(QObject):
"""Leave the mode we're currently in."""
if self.mode == usertypes.KeyMode.normal:
raise ValueError("Can't leave normal mode!")
+ if config.val.tabs.mode_on_change == 'restore':
+ window = objreg.get('main-window', scope='window',
+ window=self._win_id)
+ tab = window.tabbed_browser.currentWidget()
+ tab.data.input_mode = usertypes.KeyMode.normal
self.leave(self.mode, 'leave current')
def eventFilter(self, event):