diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2020-08-17 17:58:51 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2020-08-20 09:04:56 -0400 |
commit | 8fa1c97767223ceb285211bff96d2b716ffe4474 (patch) | |
tree | 3c95e24181ac12b6f230f7380d780438e4b88f7f /klippy/extras/display/menu.py | |
parent | 1bdf705524c4ac32829515e2919c543134a29076 (diff) | |
download | kutter-8fa1c97767223ceb285211bff96d2b716ffe4474.tar.gz kutter-8fa1c97767223ceb285211bff96d2b716ffe4474.tar.xz kutter-8fa1c97767223ceb285211bff96d2b716ffe4474.zip |
display: Support requesting a screen redraw on a menu key press
Add a request_redraw() method and call it when a key menu event
occurs. Limit these proactive screen redraws to no more than 4 per
second.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/display/menu.py')
-rw-r--r-- | klippy/extras/display/menu.py | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/klippy/extras/display/menu.py b/klippy/extras/display/menu.py index cc5a29bb..50ad7ce6 100644 --- a/klippy/extras/display/menu.py +++ b/klippy/extras/display/menu.py @@ -616,7 +616,6 @@ menu_items = { } -MENU_UPDATE_DELAY = .100 TIMER_DELAY = .100 @@ -636,7 +635,7 @@ class MenuManager: self.context = {} self.root = None self._root = config.get('menu_root', '__main') - self.cols, self.rows = self.display.lcd_chip.get_dimensions() + self.cols, self.rows = self.display.get_dimensions() self.timeout = config.getint('menu_timeout', 0) self.timer = 0 self.eventtime = 0 @@ -808,14 +807,11 @@ class MenuManager: def screen_update_event(self, eventtime): # screen update - if self.is_running(): - self.display.lcd_chip.clear() - for y, line in enumerate(self.render(eventtime)): - self.display.draw_text(y, 0, line, eventtime) - self.display.lcd_chip.flush() - return eventtime + MENU_UPDATE_DELAY - else: - return 0 + if not self.is_running(): + return False + for y, line in enumerate(self.render(eventtime)): + self.display.draw_text(y, 0, line, eventtime) + return True def up(self, fast_rate=False): container = self.stack_peek() @@ -998,6 +994,7 @@ class MenuManager: self.down(True) elif key == 'back': self.back() + self.display.request_redraw() # Collection of manager class helper methods |