diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 9979985f9..20cf5291a 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -705,6 +705,7 @@ DATA = collections.OrderedDict([ ('', 'completion-item-next'), ('', 'completion-item-next'), ('', 'command-accept'), + ('', 'command-accept'), ('', 'rl-backward-char'), ('', 'rl-forward-char'), ('', 'rl-backward-word'), @@ -726,6 +727,7 @@ DATA = collections.OrderedDict([ typ.KeyBindingName(), typ.KeyBinding(), ('', 'leave-mode'), ('', 'prompt-accept'), + ('', 'prompt-accept'), ('y', 'prompt-yes'), ('n', 'prompt-no'), ('', 'rl-backward-char'), diff --git a/qutebrowser/widgets/statusbar/command.py b/qutebrowser/widgets/statusbar/command.py index ef4be8098..03d8fecb8 100644 --- a/qutebrowser/widgets/statusbar/command.py +++ b/qutebrowser/widgets/statusbar/command.py @@ -19,7 +19,7 @@ """The commandline in the statusbar.""" -from PyQt5.QtCore import pyqtSignal, pyqtSlot +from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt from PyQt5.QtWidgets import QSizePolicy, QApplication from qutebrowser.keyinput import modeman, modeparsers @@ -305,3 +305,16 @@ class Command(misc.MinimalLineEditMixin, misc.CommandLineEdit): raise AssertionError("setText got called with invalid text " "'{}'!".format(text)) super().setText(text) + + def keyPressEvent(self, e): + """Override keyPressEvent to ignore Return key presses. + + If this widget is focused, we are in passthrough key mode, and + Enter/Shift+Enter/etc. will cause QLineEdit to think it's finished + without command_accept to be called. + """ + if e.key() == Qt.Key_Return: + e.ignore() + return + else: + super().keyPressEvent(e)