diff --git a/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py b/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py index 75ae767bab..44bda9b6bf 100644 --- a/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py +++ b/selfdrive/ui/onroad/starpilot/favorite_radial_menu.py @@ -194,14 +194,16 @@ class FavoriteRadialMenu: def render(self, rect: rl.Rectangle) -> None: self._layout(rect) self._collapse_if_idle() - if self._state == self.STATE_COLLAPSED: - self._draw_corner_hint() - elif self._state == self.STATE_RADIAL: - self._draw_corner_hint() + if self._state == self.STATE_RADIAL: self._draw_radial_menu() - else: + elif self._state == self.STATE_PICKER: self._draw_picker() + def render_corner_hint(self, rect: rl.Rectangle) -> None: + self._rect = rect + if not self.is_picker_open: + self._draw_corner_hint() + def blocks_pointer(self, mouse_pos: Any) -> bool: """Whether a parent click at ``mouse_pos`` belongs to this menu.""" return self.is_open or self._corner_press is not None or self._contains(self._corner_touch_zone, mouse_pos) @@ -755,8 +757,8 @@ class FavoriteRadialMenu: rl.draw_triangle(v_tb, v_ra, v_rb, col) # 3. Ultra-Polished Frosted-Glass Vector Arrow (Nestled deep in purple corner) - cx = x0 + 34.0 * scale - cy = y0 - 34.0 * scale + center = self.corner_center(self._rect) + cx, cy = center.x, center.y tip = rl.Vector2(cx + 15.0 * scale, cy - 15.0 * scale) tail = rl.Vector2(cx - 15.0 * scale, cy + 15.0 * scale) diff --git a/selfdrive/ui/onroad/starpilot/starpilot_onroad_view.py b/selfdrive/ui/onroad/starpilot/starpilot_onroad_view.py index e74d4489a1..4dceb40a8c 100644 --- a/selfdrive/ui/onroad/starpilot/starpilot_onroad_view.py +++ b/selfdrive/ui/onroad/starpilot/starpilot_onroad_view.py @@ -156,6 +156,8 @@ class StarPilotOnroadView(AugmentedRoadView): def _draw_border(self, rect: rl.Rectangle): border_width = self._get_border_width() + if self._draw_hud_controls and not self._full_alert_showing(): + self._favorite_radial_menu.render_corner_hint(self._content_rect) rl.draw_rectangle_lines_ex(rect, border_width, rl.BLACK) border_rect = rl.Rectangle(rect.x + border_width, rect.y + border_width, rect.width - 2 * border_width, rect.height - 2 * border_width)