summaryrefslogtreecommitdiff
path: root/src/windows/input_placeholders.py
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2014-08-07 23:20:21 +0200
committerFlorent Le Coz <louiz@louiz.org>2014-08-07 23:20:21 +0200
commit3ef9228211df46ada9bb5b851682a9c7d833de56 (patch)
tree3bf40a1f43c97577f5cf317c937f55023c0bb186 /src/windows/input_placeholders.py
parent0e2bba640e1ffcfaa7ce4bc6782f24b0f10b8c08 (diff)
downloadpoezio-3ef9228211df46ada9bb5b851682a9c7d833de56.tar.gz
poezio-3ef9228211df46ada9bb5b851682a9c7d833de56.tar.bz2
poezio-3ef9228211df46ada9bb5b851682a9c7d833de56.tar.xz
poezio-3ef9228211df46ada9bb5b851682a9c7d833de56.zip
Continuation keys (like after M-j or Ctrl-c) are handled without blocking
Diffstat (limited to 'src/windows/input_placeholders.py')
-rw-r--r--src/windows/input_placeholders.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/windows/input_placeholders.py b/src/windows/input_placeholders.py
index 6fd7975a..0887cfc5 100644
--- a/src/windows/input_placeholders.py
+++ b/src/windows/input_placeholders.py
@@ -68,9 +68,12 @@ class YesNoInput(Win):
def prompt(self):
"""Monopolizes the input while waiting for a recognized keypress"""
- cl = []
- while self.value is None:
- if len(cl) == 1 and cl[0] in self.key_func:
- self.key_func[cl[0]]()
- cl = self.core.read_keyboard()
+ def cb(key):
+ if key in self.key_func:
+ self.key_func[key]()
+ if self.value is None:
+ # We didn’t finish with this prompt, continue monopolizing
+ # it again until value is set
+ keyboard.continuation_keys_callback = cb
+ keyboard.continuation_keys_callback = cb