aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pomu/util/iquery.py')
-rw-r--r--pomu/util/iquery.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/pomu/util/iquery.py b/pomu/util/iquery.py
index d0281a3..8f81e57 100644
--- a/pomu/util/iquery.py
+++ b/pomu/util/iquery.py
@@ -35,18 +35,23 @@ class Prompt:
def run(self, window_type=CursorAwareWindow, **args):
with open('/dev/tty', 'r') as tty_in, \
open('/dev/tty', 'w') as tty_out, \
- Input(in_stream=tty_in) as input_, \
- window_type(in_stream=tty_in,
- out_stream=tty_out,
- hide_cursor=False,
- extra_bytes_callback=input_.unget_bytes,
- **args) as window:
- self.window = window
+ Input(in_stream=tty_in) as input_:
+ if window_type == CursorAwareWindow:
+ iargs = {'in_stream':tty_in, 'out_stream':tty_out,
+ 'hide_cursor':False, 'extra_bytes_callback':input_.unget_bytes}
+ else:
+ iargs = {'out_stream':tty_out}
+ iargs.update(args)
+ with window_type(**args) as window:
+ return self.event_loop(window, input_)
+
+ def event_loop(self, window, input_):
+ self.window = window
+ self.render()
+ for event in input_:
+ if self.process_event(event) == -1:
+ break
self.render()
- for event in input_:
- if self.process_event(event) == -1:
- break
- self.render()
return self.results()
def clamp(self, x):