From 22ab73be26993520544b7eda83a156cbb93b1c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Cort=C3=A9z?= Date: Sat, 4 Feb 2017 23:03:34 -0600 Subject: [PATCH] Catched keyboardInterrupt exception in mainLoop --- guicurses/window.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/guicurses/window.py b/guicurses/window.py index 0a049e7..4748619 100644 --- a/guicurses/window.py +++ b/guicurses/window.py @@ -63,20 +63,23 @@ class Window(object): self.screen.refresh() def run(self): - while 1: - time.sleep(0.01) - if self.status_counter != None: - if self.status_counter >= 10: - self.status_counter = None - self.setStatus(" "*self.maxx) - else: - self.status_counter += 1 - c=self.screen.getch() - if c!=-1: - for handler in self.handlers[:]: - if handler.handleKey(c): - self.check_changes(handler) - break + try: + while 1: + time.sleep(0.01) + if self.status_counter != None: + if self.status_counter >= 10: + self.status_counter = None + self.setStatus(" "*self.maxx) + else: + self.status_counter += 1 + c=self.screen.getch() + if c!=-1: + for handler in self.handlers[:]: + if handler.handleKey(c): + self.check_changes(handler) + break + except KeyboardInterrupt: + pass def check_changes(self, handler): if hasattr(handler, "selected_action") and handler.done == 1: