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;