From 3ea34083389d16434eba04e6673cb12dd7408b5b Mon Sep 17 00:00:00 2001 From: Nicholas Luo Date: Tue, 16 May 2017 18:43:16 +0800 Subject: [PATCH] Toggling an expired timer will reset to previous setting, then reset to 0 --- speedrunner/lib/timer.py | 5 ++++- speedrunner/ui/subwindow.py | 9 +++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/speedrunner/lib/timer.py b/speedrunner/lib/timer.py index 9ef5a4e..a4f74c0 100644 --- a/speedrunner/lib/timer.py +++ b/speedrunner/lib/timer.py @@ -24,15 +24,18 @@ def toggle(self): else: self.ti.start() self.running = not self.running + if self.expired(): + self.reset() self.on_state_change(self.running) def reset(self): if self.running: # do not reset when running pass + elif self.expired(): + self.ti = TimeInterval() else: self.ti = TimeInterval() self.setting = 0 - self.on_state_change(self.running) def increment(self, seconds): self.setting += seconds diff --git a/speedrunner/ui/subwindow.py b/speedrunner/ui/subwindow.py index 5fed60d..6bd8a1d 100644 --- a/speedrunner/ui/subwindow.py +++ b/speedrunner/ui/subwindow.py @@ -69,10 +69,11 @@ def update_data(self): def update_border(self): if self.active_window: - if self.active_window.expired(): - self.update_border_expired() - elif self.active_window.running(): - self.frame.border('red') + if self.active_window.running(): + if self.active_window.expired(): + self.update_border_expired() + else: + self.frame.border('red') else: self.frame.border('black')