From 5992688926d6a9bccaa10d5ab4080e549d4cbf0c Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Wed, 7 Mar 2018 11:43:17 -0500 Subject: Save input modes when mode_on_change=='restore' --- qutebrowser/keyinput/modeman.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'qutebrowser/keyinput/modeman.py') 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) -- cgit v1.2.3-54-g00ecf