aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/display/menu.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-08-17 17:58:51 -0400
committerKevin O'Connor <kevin@koconnor.net>2020-08-20 09:04:56 -0400
commit8fa1c97767223ceb285211bff96d2b716ffe4474 (patch)
tree3c95e24181ac12b6f230f7380d780438e4b88f7f /klippy/extras/display/menu.py
parent1bdf705524c4ac32829515e2919c543134a29076 (diff)
downloadkutter-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.py17
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