Skip to content

Commit 182a579

Browse files
committed
cursor fix pt2
1 parent 27c3ced commit 182a579

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

selfdrive/ui/mici/layouts/main.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,38 +77,50 @@ def _render(self, _):
7777
# Render
7878
self._scroller.render(self._rect)
7979

80-
# If not in background stack
81-
if self.enabled:
82-
self._handle_transitions()
80+
self._handle_transitions()
8381

8482
def _handle_transitions(self):
83+
# Don't pop if onboarding
84+
if gui_app.get_active_widget() == self._onboarding_window:
85+
return
86+
8587
if ui_state.started != self._prev_onroad:
8688
self._prev_onroad = ui_state.started
8789

90+
# onroad: after delay, pop nav stack and scroll to onroad
91+
# offroad: immediately scroll to home, but don't pop nav stack (can stay in settings)
8892
if ui_state.started:
8993
self._onroad_time_delay = rl.get_time()
9094
else:
9195
self._scroll_to(self._home_layout)
9296

93-
# delay so we show home for a bit after starting
9497
if self._onroad_time_delay is not None and rl.get_time() - self._onroad_time_delay >= ONROAD_DELAY:
98+
gui_app.pop_widgets_to(self)
9599
self._scroll_to(self._onroad_layout)
96100
self._onroad_time_delay = None
97101

102+
# when car leaves standstill, pop nav stack and scroll to onroad
98103
CS = ui_state.sm["carState"]
99104
if not CS.standstill and self._prev_standstill:
105+
gui_app.pop_widgets_to(self)
100106
self._scroll_to(self._onroad_layout)
101107
self._prev_standstill = CS.standstill
102108

103109
def _on_interactive_timeout(self):
104-
"""Called on screen interactive timeout — scroll to default view, but don't disrupt onboarding or settings."""
105110
print(f'_on_interactive_timeout, {ui_state.started=}')
106-
if not self._onboarding_window.completed or gui_app.get_active_widget() != self:
111+
112+
# Don't pop if onboarding
113+
print('get active', gui_app.get_active_widget(), self._onboarding_window.completed)
114+
if gui_app.get_active_widget() == self._onboarding_window:
107115
return
108116

109-
if ui_state.started and not ui_state.sm["carState"].standstill:
110-
self._scroll_to(self._onroad_layout)
111-
elif not ui_state.started:
117+
if ui_state.started:
118+
# Don't pop if at standstill
119+
if not ui_state.sm["carState"].standstill:
120+
gui_app.pop_widgets_to(self)
121+
self._scroll_to(self._onroad_layout)
122+
else:
123+
gui_app.pop_widgets_to(self)
112124
self._scroll_to(self._home_layout)
113125

114126
def _on_bookmark_clicked(self):

0 commit comments

Comments
 (0)