summaryrefslogtreecommitdiffstats
path: root/apps/gui/option_select.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/option_select.c')
-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,
bool cb_on_select_only =
((setting->flags & F_CB_ON_SELECT_ONLY) == F_CB_ON_SELECT_ONLY);
bool cb_on_changed =
- ((setting->flags & F_CB_ON_SELECT_ONLY_IF_CHANGED) == F_CB_ON_SELECT_ONLY_IF_CHANGED);
+ ((setting->flags & F_CB_ONLY_IF_CHANGED) == F_CB_ONLY_IF_CHANGED);
int var_type = setting->flags&F_T_MASK;
void (*function)(int) = NULL;
@@ -578,8 +578,10 @@ bool option_screen(const struct settings_list *setting,
}
/* callback */
if (function && !cb_on_select_only)
- function(*variable);
-
+ {
+ if (!cb_on_changed || (*variable != oldvalue))
+ function(*variable);
+ }
/* if the volume is changing we need to let the skins know */
if (function == sound_get_fn(SOUND_VOLUME))
global_status.last_volume_change = current_tick;