summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
authorMarc Jauvin <marc.jauvin@gmail.com>2018-03-07 11:43:17 -0500
committerMarc Jauvin <marc.jauvin@gmail.com>2018-03-07 11:43:17 -0500
commit5992688926d6a9bccaa10d5ab4080e549d4cbf0c (patch)
treec63a0cc6584b400f027f271c5967eea014f7168d /qutebrowser/keyinput/modeman.py
parent872cff2ae18b908a4c4c2f6f6ffa1a5911b98729 (diff)
downloadqutebrowser-5992688926d6a9bccaa10d5ab4080e549d4cbf0c.tar.gz
qutebrowser-5992688926d6a9bccaa10d5ab4080e549d4cbf0c.zip
Save input modes when mode_on_change=='restore'
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r--qutebrowser/keyinput/modeman.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index 585742d36..3f706d43c 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -236,6 +236,7 @@ class ModeManager(QObject):
if mode not in self._parsers:
raise ValueError("No keyparser for mode {}".format(mode))
prompt_modes = (usertypes.KeyMode.prompt, usertypes.KeyMode.yesno)
+ input_modes = [usertypes.KeyMode.insert, usertypes.KeyMode.passthrough]
if self.mode == mode or (self.mode in prompt_modes and
mode in prompt_modes):
log.modes.debug("Ignoring request as we're in mode {} "
@@ -249,7 +250,8 @@ class ModeManager(QObject):
return
log.modes.debug("Overriding mode {}.".format(self.mode))
self.left.emit(self.mode, mode, self._win_id)
- if mode in prompt_modes:
+ if (mode in prompt_modes and self.mode in input_modes and
+ config.val.tabs.mode_on_change == 'restore'):
# save previous mode when being prompted
self._prev_mode = self.mode
else:
@@ -273,6 +275,7 @@ class ModeManager(QObject):
usertypes.KeyMode.yesno, usertypes.KeyMode.prompt]:
raise cmdexc.CommandError(
"Mode {} can't be entered manually!".format(mode))
+
self.enter(m, 'command')
@pyqtSlot(usertypes.KeyMode, str, bool)