From 781a5a7bcc005436af3a3bb3b9a6a0c2cd6d2a18 Mon Sep 17 00:00:00 2001 From: philmoz Date: Sat, 13 Dec 2025 13:24:35 +1100 Subject: [PATCH] fix(color): ensure backlight ON & OFF sliders always visible (#6865) --- radio/src/gui/colorlcd/radio/radio_setup.cpp | 38 +++++--------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/radio/src/gui/colorlcd/radio/radio_setup.cpp b/radio/src/gui/colorlcd/radio/radio_setup.cpp index 278bde8c1..f6e87224a 100644 --- a/radio/src/gui/colorlcd/radio/radio_setup.cpp +++ b/radio/src/gui/colorlcd/radio/radio_setup.cpp @@ -449,7 +449,7 @@ class BacklightPage : public SubPage }); // Backlight ON bright - backlightOnBright = setupLine(STR_BLONBRIGHTNESS, [=](Window* parent, coord_t x, coord_t y) { + setupLine(STR_BLONBRIGHTNESS, [=](Window* parent, coord_t x, coord_t y) { backlightOnSlider = new Slider( parent, lv_pct(50), BACKLIGHT_LEVEL_MIN, BACKLIGHT_LEVEL_MAX, [=]() -> int32_t { @@ -470,7 +470,7 @@ class BacklightPage : public SubPage }); // Backlight OFF bright - backlightOffBright = setupLine(STR_BLOFFBRIGHTNESS, [=](Window* parent, coord_t x, coord_t y) { + setupLine(STR_BLOFFBRIGHTNESS, [=](Window* parent, coord_t x, coord_t y) { backlightOffSlider = new Slider( parent, lv_pct(50), BACKLIGHT_LEVEL_MIN, BACKLIGHT_LEVEL_MAX, GET_DEFAULT(g_eeGeneral.blOffBright), @@ -508,38 +508,18 @@ class BacklightPage : public SubPage protected: Window* backlightTimeout = nullptr; - Window* backlightOnBright = nullptr; - Window* backlightOffBright = nullptr; Slider* backlightOffSlider = nullptr; Slider* backlightOnSlider = nullptr; void updateBacklightControls() { - switch (g_eeGeneral.backlightMode) { - case e_backlight_mode_off: - backlightTimeout->hide(); - backlightOnBright->hide(); - backlightOffBright->show(); - break; - case e_backlight_mode_keys: - case e_backlight_mode_sticks: - case e_backlight_mode_all: - default: { - backlightTimeout->show(); - backlightOnBright->show(); - backlightOffBright->show(); - int32_t onBright = BACKLIGHT_LEVEL_MAX - g_eeGeneral.backlightBright; - if (onBright < g_eeGeneral.blOffBright) - g_eeGeneral.backlightBright = - BACKLIGHT_LEVEL_MAX - g_eeGeneral.blOffBright; - break; - } - case e_backlight_mode_on: - backlightTimeout->hide(); - backlightOnBright->show(); - backlightOffBright->hide(); - break; - } + int32_t onBright = BACKLIGHT_LEVEL_MAX - g_eeGeneral.backlightBright; + if (onBright < g_eeGeneral.blOffBright) + g_eeGeneral.backlightBright = + BACKLIGHT_LEVEL_MAX - g_eeGeneral.blOffBright; + + backlightTimeout->show(g_eeGeneral.backlightMode != e_backlight_mode_on); + resetBacklightTimeout(); } };