summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2023-08-29 09:26:41 -0400
committerWilliam Wilgus <wilgus.william@gmail.com>2023-08-29 09:26:41 -0400
commit873f49b1f066f41ef0649647188708645e6c0663 (patch)
treeec8845e8c201a018f96818189056a3ecf9c0c3b2 /apps/gui
parente60ade1fbcb0f1c5a5cd15217b32565c80b166a7 (diff)
downloadrockbox-873f49b1f066f41ef0649647188708645e6c0663.tar.gz
rockbox-873f49b1f066f41ef0649647188708645e6c0663.zip
settings_list add F_CB_ONLY_IF_CHANGED for settings
Recently I added F_CB_ON_SELECT_ONLY_IF_CHANGED in conjunction with the shuffle and repeat settings instead it makes more sense to make F_CB_ONLY_IF_CHANGED and apply to all callbacks (F_CB_ON_SELECT_ONLY or on_exit) Change-Id: I4376557d479aceb419f7b4b4e0998afc249c87ec
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/option_select.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c
index d7f27f64eb..da6c703f40 100644
--- a/apps/gui/option_select.c
+++ b/apps/gui/option_select.c
@@ -472,7 +472,7 @@ bool option_screen(const struct settings_list *setting,
472 bool cb_on_select_only = 472 bool cb_on_select_only =
473 ((setting->flags & F_CB_ON_SELECT_ONLY) == F_CB_ON_SELECT_ONLY); 473 ((setting->flags & F_CB_ON_SELECT_ONLY) == F_CB_ON_SELECT_ONLY);
474 bool cb_on_changed = 474 bool cb_on_changed =
475 ((setting->flags & F_CB_ON_SELECT_ONLY_IF_CHANGED) == F_CB_ON_SELECT_ONLY_IF_CHANGED); 475 ((setting->flags & F_CB_ONLY_IF_CHANGED) == F_CB_ONLY_IF_CHANGED);
476 476
477 int var_type = setting->flags&F_T_MASK; 477 int var_type = setting->flags&F_T_MASK;
478 void (*function)(int) = NULL; 478 void (*function)(int) = NULL;
@@ -578,8 +578,10 @@ bool option_screen(const struct settings_list *setting,
578 } 578 }
579 /* callback */ 579 /* callback */
580 if (function && !cb_on_select_only) 580 if (function && !cb_on_select_only)
581 function(*variable); 581 {
582 582 if (!cb_on_changed || (*variable != oldvalue))
583 function(*variable);
584 }
583 /* if the volume is changing we need to let the skins know */ 585 /* if the volume is changing we need to let the skins know */
584 if (function == sound_get_fn(SOUND_VOLUME)) 586 if (function == sound_get_fn(SOUND_VOLUME))
585 global_status.last_volume_change = current_tick; 587 global_status.last_volume_change = current_tick;