summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/keyinput/basekeyparser.py1
-rw-r--r--tests/unit/keyinput/test_basekeyparser.py8
2 files changed, 9 insertions, 0 deletions
diff --git a/qutebrowser/keyinput/basekeyparser.py b/qutebrowser/keyinput/basekeyparser.py
index c527b3cde..1582a5485 100644
--- a/qutebrowser/keyinput/basekeyparser.py
+++ b/qutebrowser/keyinput/basekeyparser.py
@@ -166,6 +166,7 @@ class BaseKeyParser(QObject):
assert len(txt) == 1, txt
if not dry_run:
self._count += txt
+ self.keystring_updated.emit(self._count + str(self._sequence))
return QKeySequence.ExactMatch
if dry_run:
diff --git a/tests/unit/keyinput/test_basekeyparser.py b/tests/unit/keyinput/test_basekeyparser.py
index 947c50592..460d322c3 100644
--- a/tests/unit/keyinput/test_basekeyparser.py
+++ b/tests/unit/keyinput/test_basekeyparser.py
@@ -281,6 +281,14 @@ class TestCount:
keyparser.execute.assert_called_once_with('message-info ccc', 23)
assert not keyparser._sequence
+ def test_count_keystring_update(self, qtbot, handle_text, keyparser):
+ """Make sure the keystring is updated correctly when entering count."""
+ with qtbot.waitSignals([keyparser.keystring_updated, keyparser.keystring_updated]) as blocker:
+ handle_text(Qt.Key_4, Qt.Key_2)
+ sig1, sig2 = blocker.all_signals_and_args
+ assert sig1.args == ('4',)
+ assert sig2.args == ('42',)
+
def test_clear_keystring(qtbot, keyparser):
"""Test that the keystring is cleared and the signal is emitted."""