From 9cd4352256e3a74a13d090f5fca8302e5b5bb136 Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Mon, 17 Aug 2026 05:07:21 +0200 Subject: [PATCH] quickscreen: fix missing redraw for QS_VOL action If volume was set as one of the Quickscreen items, the value wasn't updated when pressing ACTION_QS_VOLUP or -DOWN. Change-Id: Ie6531535745592d7b53006560f1db8c5b7dbfb97 --- apps/gui/quickscreen.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index 45a0552809..083bebe06e 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c @@ -58,6 +58,7 @@ struct quickscreen struct viewport vp_icons[NB_SCREENS]; int button_enter; enum quickscreen_return result; + enum quickscreen_item volume_item; }; static void quickscreen_fix_viewports(struct quickscreen *qs, enum screen_type screen) @@ -438,10 +439,12 @@ static void quickscreen_run(struct quickscreen * qs) } else if (button == qs->button_enter) can_quit = true; - else if (button == ACTION_QS_VOLUP) - adjust_volume(1); - else if (button == ACTION_QS_VOLDOWN) - adjust_volume(-1); + else if (button == ACTION_QS_VOLUP || button == ACTION_QS_VOLDOWN) + { + adjust_volume(button == ACTION_QS_VOLUP ? 1 : -1); + if (qs->volume_item < QUICKSCREEN_ITEM_COUNT) + quickscreen_update(qs, qs->volume_item); + } else if (button == ACTION_STD_CONTEXT) { qs->result |= QUICKSCREEN_GOTO_SHORTCUTS_MENU; @@ -467,6 +470,7 @@ int quick_screen_quick(int button_enter) struct quickscreen qs; qs.button_enter = button_enter; qs.result = QUICKSCREEN_OK; + qs.volume_item = QUICKSCREEN_ITEM_COUNT; for (int i = 0; i < 4; ++i) { @@ -474,6 +478,9 @@ int quick_screen_quick(int button_enter) if (!is_setting_quickscreenable(qs.items[i])) qs.items[i] = NULL; + + if (qs.items[i] && qs.items[i]->lang_id == LANG_VOLUME) + qs.volume_item = i; } quickscreen_run(&qs);