Skip to content

Commit 2bc97ee

Browse files
authored
raylib: fix DM popup (#36265)
* come on * try * better * better * multiple places! * debug * works * temp * whoops * wonder if this wortks * ah need this! * wtf is this when deleted? * another day no modal show event * clean * fix * ugh * need this
1 parent c88ab5c commit 2bc97ee

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

selfdrive/ui/onroad/driver_camera_dialog.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from msgq.visionipc import VisionStreamType
44
from openpilot.selfdrive.ui.onroad.cameraview import CameraView
55
from openpilot.selfdrive.ui.onroad.driver_state import DriverStateRenderer
6-
from openpilot.selfdrive.ui.ui_state import ui_state
6+
from openpilot.selfdrive.ui.ui_state import ui_state, device
77
from openpilot.system.ui.lib.application import gui_app, FontWeight
88
from openpilot.system.ui.widgets.label import gui_label
99

@@ -12,10 +12,17 @@ class DriverCameraDialog(CameraView):
1212
def __init__(self):
1313
super().__init__("camerad", VisionStreamType.VISION_STREAM_DRIVER)
1414
self.driver_state_renderer = DriverStateRenderer()
15+
# TODO: this can grow unbounded, should be given some thought
16+
device.add_interactive_timeout_callback(self.stop_dmonitoringmodeld)
17+
ui_state.params.put_bool("IsDriverViewEnabled", True)
18+
19+
def stop_dmonitoringmodeld(self):
20+
ui_state.params.put_bool("IsDriverViewEnabled", False)
21+
gui_app.set_modal_overlay(None)
1522

1623
def _handle_mouse_release(self, _):
1724
super()._handle_mouse_release(_)
18-
gui_app.set_modal_overlay(None)
25+
self.stop_dmonitoringmodeld()
1926

2027
def _render(self, rect):
2128
super()._render(rect)

system/ui/lib/application.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ def init_window(self, title: str, fps: int = _DEFAULT_FPS):
178178
self._mouse.start()
179179

180180
def set_modal_overlay(self, overlay, callback: Callable | None = None):
181+
if self._modal_overlay.overlay is not None:
182+
if self._modal_overlay.callback is not None:
183+
self._modal_overlay.callback(-1)
184+
181185
self._modal_overlay = ModalOverlay(overlay=overlay, callback=callback)
182186

183187
def texture(self, asset_path: str, width: int, height: int, alpha_premultiply=False, keep_aspect_ratio=True):

0 commit comments

Comments
 (0)