diff options
Diffstat (limited to 'apps/gui/option_select.c')
-rw-r--r-- | apps/gui/option_select.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c index afc11fc4ee..1ce7fd5026 100644 --- a/apps/gui/option_select.c +++ b/apps/gui/option_select.c | |||
@@ -594,7 +594,7 @@ bool option_screen(const struct settings_list *setting, | |||
594 | return false; | 594 | return false; |
595 | } | 595 | } |
596 | 596 | ||
597 | int get_setting_info_for_bar(const struct settings_list *setting, int *count, int *val) | 597 | int get_setting_info_for_bar(const struct settings_list *setting, int offset, int *count, int *val) |
598 | { | 598 | { |
599 | int var_type = setting->flags&F_T_MASK; | 599 | int var_type = setting->flags&F_T_MASK; |
600 | void (*function)(int) = NULL; | 600 | void (*function)(int) = NULL; |
@@ -602,7 +602,9 @@ int get_setting_info_for_bar(const struct settings_list *setting, int *count, in | |||
602 | 602 | ||
603 | if (var_type == F_T_INT || var_type == F_T_UINT) | 603 | if (var_type == F_T_INT || var_type == F_T_UINT) |
604 | { | 604 | { |
605 | oldvalue = *(int*)setting->setting; | 605 | if (!(setting->flags&F_EQSETTING) || offset > 2) |
606 | offset = 0; | ||
607 | oldvalue = ((int*)setting->setting)[offset]; | ||
606 | } | 608 | } |
607 | else if (var_type == F_T_BOOL) | 609 | else if (var_type == F_T_BOOL) |
608 | { | 610 | { |
@@ -620,14 +622,16 @@ int get_setting_info_for_bar(const struct settings_list *setting, int *count, in | |||
620 | } | 622 | } |
621 | 623 | ||
622 | #ifdef HAVE_TOUCHSCREEN | 624 | #ifdef HAVE_TOUCHSCREEN |
623 | void update_setting_value_from_touch(const struct settings_list *setting, int selection) | 625 | void update_setting_value_from_touch(const struct settings_list *setting, int offset, int selection) |
624 | { | 626 | { |
625 | int new_val = selection_to_val(setting, selection); | 627 | int new_val = selection_to_val(setting, selection); |
626 | int var_type = setting->flags&F_T_MASK; | 628 | int var_type = setting->flags&F_T_MASK; |
627 | 629 | ||
628 | if (var_type == F_T_INT || var_type == F_T_UINT) | 630 | if (var_type == F_T_INT || var_type == F_T_UINT) |
629 | { | 631 | { |
630 | *(int*)setting->setting = new_val; | 632 | if (!(setting->flags&F_EQSETTING) || offset > 2) |
633 | offset = 0; | ||
634 | ((int*)setting->setting)[offset] = new_val; | ||
631 | } | 635 | } |
632 | else if (var_type == F_T_BOOL) | 636 | else if (var_type == F_T_BOOL) |
633 | { | 637 | { |