diff --git a/components/st3m/st3m_gfx.c b/components/st3m/st3m_gfx.c index 2d9a5d185a69fe2d042a204d270da08d67c407a2..5c98b273199f9d55b731971157ab2e3aa008b6d6 100644 --- a/components/st3m/st3m_gfx.c +++ b/components/st3m/st3m_gfx.c @@ -341,7 +341,9 @@ st3m_gfx_mode st3m_gfx_set_mode(st3m_gfx_mode mode) { return mode; } -st3m_gfx_mode st3m_gfx_get_mode(void) { return _st3m_gfx_mode; } +st3m_gfx_mode st3m_gfx_get_mode(void) { + return _st3m_gfx_mode ? _st3m_gfx_mode : default_mode; +} uint8_t *st3m_gfx_fb(st3m_gfx_mode mode, int *width, int *height, int *stride) { st3m_gfx_mode set_mode = _st3m_gfx_mode ? _st3m_gfx_mode : default_mode; diff --git a/python_payload/st3m/ui/elements/overlays.py b/python_payload/st3m/ui/elements/overlays.py index 45f69690d73959694f8b3eef06fc456bc8f94252..82d8e8b4936f6f94a1c1f8464d689b0fe71f32ed 100644 --- a/python_payload/st3m/ui/elements/overlays.py +++ b/python_payload/st3m/ui/elements/overlays.py @@ -80,18 +80,20 @@ class Compositor(Responder): def think(self, ins: InputState, delta_ms: int) -> None: self.main.think(ins, delta_ms) - if sys_display.get_mode() != 0: + if ( + sys_display.get_mode() & sys_display.osd == 0 + or settings.onoff_show_fps.value + ): return - if not settings.onoff_show_fps.value and not sys_display.get_mode() != 0: - for overlay in self._enabled_overlays(): - overlay.think(ins, delta_ms) + for overlay in self._enabled_overlays(): + overlay.think(ins, delta_ms) def draw(self, ctx: Context) -> None: global _clip_x0, _clip_y0, _clip_x1, _clip_y1 self.main.draw(ctx) - if sys_display.get_mode() != 0: + if (sys_display.get_mode() & sys_display.osd) == 0: return - octx = sys_display.ctx(256) # XXX add symbolic name for overlay + octx = sys_display.ctx(sys_display.osd) if settings.onoff_show_fps.value: _clip_x0 = 0 _clip_y1 = 0