From 73b502a16d99d8cff2e025b680279cf23b29e607 Mon Sep 17 00:00:00 2001 From: jdgleaver Date: Fri, 10 Jul 2020 11:44:18 +0100 Subject: [PATCH] Fix 'current item' marker position in float drop-down lists --- menu/menu_displaylist.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 130d599e9a..cfeaba6bf7 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -11664,6 +11664,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, float orig_value = *setting->value.target.fraction; unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM; float step = setting->step; + float half_step = step * 0.5f; double min = setting->enforce_minrange ? setting->min : 0.00; double max = setting->enforce_maxrange ? setting->max : 9999.00; bool checked_found = false; @@ -11688,7 +11689,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, setting_type, 0, 0)) count++; - if (!checked_found && fabs(i - orig_value) <= 0.01f) + if (!checked_found && (fabs(i - orig_value) < half_step)) { checked = entry_index; checked_found = true; @@ -11715,7 +11716,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, setting_type, 0, 0)) count++; - if (!checked_found && fabs(i - orig_value) <= 0.01f) + if (!checked_found && (fabs(i - orig_value) < half_step)) { checked = entry_index; checked_found = true; @@ -12080,6 +12081,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, float orig_value = *setting->value.target.fraction; unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM_SPECIAL; float step = setting->step; + float half_step = step * 0.5f; double min = setting->enforce_minrange ? setting->min : 0.00; double max = setting->enforce_maxrange ? setting->max : 9999.00; bool checked_found = false; @@ -12104,7 +12106,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, setting_type, 0, 0)) count++; - if (!checked_found && fabs(i - orig_value) <= 0.01f) + if (!checked_found && (fabs(i - orig_value) < half_step)) { checked = entry_index; checked_found = true; @@ -12131,7 +12133,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, setting_type, 0, 0)) count++; - if (!checked_found && fabs(i - orig_value) <= 0.01f) + if (!checked_found && (fabs(i - orig_value) < half_step)) { checked = entry_index; checked_found = true;