From 2976fde8db65a9dd3074faf28a7b0085759dd4c6 Mon Sep 17 00:00:00 2001 From: philmoz Date: Wed, 8 Oct 2025 21:48:43 +1100 Subject: [PATCH] fix(color): widgets may not update correctly when flight mode changes (v2) (#6639) --- radio/src/gui/colorlcd/mainview/layout_factory_impl.cpp | 5 +++-- radio/src/gui/colorlcd/mainview/layout_factory_impl.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/colorlcd/mainview/layout_factory_impl.cpp b/radio/src/gui/colorlcd/mainview/layout_factory_impl.cpp index 4f26861d4..b2bfa21b4 100644 --- a/radio/src/gui/colorlcd/mainview/layout_factory_impl.cpp +++ b/radio/src/gui/colorlcd/mainview/layout_factory_impl.cpp @@ -98,8 +98,9 @@ rect_t Layout::getZone(unsigned int index) const void Layout::checkEvents() { Window::checkEvents(); - if (lastFM != mixerCurrentFlightMode) { - lastFM = mixerCurrentFlightMode; + rect_t z = getMainZone(); + if (z.x != lastMainZone.x || z.y != lastMainZone.y || z.w != lastMainZone.w || z.h != lastMainZone.h) { + lastMainZone = z; updateZones(); } } diff --git a/radio/src/gui/colorlcd/mainview/layout_factory_impl.h b/radio/src/gui/colorlcd/mainview/layout_factory_impl.h index 3833c9421..5b0a5ee3d 100644 --- a/radio/src/gui/colorlcd/mainview/layout_factory_impl.h +++ b/radio/src/gui/colorlcd/mainview/layout_factory_impl.h @@ -113,7 +113,7 @@ class Layout: public LayoutBase std::unique_ptr decoration; uint8_t zoneCount; uint8_t* zoneMap = nullptr; - uint8_t lastFM = 0; + rect_t lastMainZone = {0,0,0,0}; // Last time we refreshed the window uint32_t lastRefresh = 0;