From 0f05aafd3b0d86bef5b4e4a1b2189dd74b6ff6b7 Mon Sep 17 00:00:00 2001 From: Mithil Date: Tue, 30 Jun 2020 21:00:26 +0530 Subject: [PATCH] Fix delayed exit in replay mode The app would sleep for the time between 2 consecutive key presses. This would stop input for ESC key during the replay for that period of time. Fix #10 --- mitype/app.py | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/mitype/app.py b/mitype/app.py index ae465fd..001ce75 100644 --- a/mitype/app.py +++ b/mitype/app.py @@ -9,6 +9,7 @@ import mitype.commandline import mitype.keycheck +from datetime import datetime, timedelta class App: @@ -275,24 +276,20 @@ def replay(self, win): self.setup_print(win) for j in self.key_strokes: - - time.sleep(j[0]) - - self.key_printer(win, j[1]) - + timer = time.time() key = "" - - try: - if sys.version_info[0] < 3: - key = win.getkey() - else: - key = win.get_wch() - except curses.error: - pass - - if mitype.keycheck.is_escape(key): - sys.exit(0) - + while time.time() - timer < j[0]: + try: + if sys.version_info[0] < 3: + key = win.getkey() + else: + key = win.get_wch() + except curses.error: + pass + if mitype.keycheck.is_escape(key): + sys.exit(0) + + self.key_printer(win, j[1]) win.refresh() def word_wrap(self, text, width):