diff --git a/menu/menu_driver.h b/menu/menu_driver.h index a226b2b79e..d02ef44195 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -99,9 +99,15 @@ typedef struct /* Quick jumping indices with L/R. * Rebuilt when parsing directory. */ - size_t scroll_indices[2 * (26 + 2) + 1]; - unsigned scroll_indices_size; - unsigned scroll_accel; + struct + { + struct + { + size_t list[2 * (26 + 2) + 1]; + unsigned size; + } indices; + unsigned acceleration; + } scroll; char default_glslp[PATH_MAX_LENGTH]; char default_cgp[PATH_MAX_LENGTH]; diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index b447156511..622d364668 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -2030,7 +2030,7 @@ static int action_toggle_scroll(unsigned type, const char *label, if (!driver.menu) return -1; - scroll_speed = (max(driver.menu->scroll_accel, 2) - 2) / 4 + 1; + scroll_speed = (max(driver.menu->scroll.acceleration, 2) - 2) / 4 + 1; fast_scroll_speed = 4 + 4 * scroll_speed; switch (action) @@ -3593,7 +3593,7 @@ static int deferred_push_default(void *data, void *userdata, static int action_bind_up_or_down_generic(unsigned type, const char *label, unsigned action) { - unsigned scroll_speed = (max(driver.menu->scroll_accel, 2) - 2) / 4 + 1; + unsigned scroll_speed = (max(driver.menu->scroll.acceleration, 2) - 2) / 4 + 1; if (menu_list_get_size(driver.menu->menu_list) <= 0) return 0; diff --git a/menu/menu_input.c b/menu/menu_input.c index 66da5a5ebb..010cf5171c 100644 --- a/menu/menu_input.c +++ b/menu/menu_input.c @@ -478,7 +478,8 @@ unsigned menu_input_frame(retro_input_t input, retro_input_t trigger_input) { first_held = false; trigger_input |= input & input_repeat; - driver.menu->scroll_accel = min(driver.menu->scroll_accel + 1, 64); + driver.menu->scroll.acceleration = + min(driver.menu->scroll.acceleration + 1, 64); } initial_held = false; @@ -487,7 +488,7 @@ unsigned menu_input_frame(retro_input_t input, retro_input_t trigger_input) { first_held = false; initial_held = true; - driver.menu->scroll_accel = 0; + driver.menu->scroll.acceleration = 0; } driver.menu->mouse.enable = g_settings.menu.mouse_enable; diff --git a/menu/menu_list.c b/menu/menu_list.c index 6778069908..2ed31e94da 100644 --- a/menu/menu_list.c +++ b/menu/menu_list.c @@ -98,11 +98,11 @@ static void menu_entries_build_scroll_indices(file_list_t *list) if (!driver.menu || !list) return; - driver.menu->scroll_indices_size = 0; + driver.menu->scroll.indices.size = 0; if (!list->size) return; - driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = 0; + driver.menu->scroll.indices.list[driver.menu->scroll.indices.size++] = 0; current = menu_entries_list_get_first_char(list, 0); current_is_dir = menu_entries_list_elem_is_dir(list, 0); @@ -113,13 +113,13 @@ static void menu_entries_build_scroll_indices(file_list_t *list) bool is_dir = menu_entries_list_elem_is_dir(list, i); if ((current_is_dir && !is_dir) || (first > current)) - driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = i; + driver.menu->scroll.indices.list[driver.menu->scroll.indices.size++] = i; current = first; current_is_dir = is_dir; } - driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = + driver.menu->scroll.indices.list[driver.menu->scroll.indices.size++] = list->size - 1; } @@ -422,7 +422,7 @@ int menu_list_populate_generic(void *data, if (!menu) return -1; - driver.menu->scroll_indices_size = 0; + driver.menu->scroll.indices.size = 0; menu_entries_build_scroll_indices(list); menu_entries_refresh(menu, list); diff --git a/menu/menu_navigation.c b/menu/menu_navigation.c index 14d2907f6a..91319321ed 100644 --- a/menu/menu_navigation.c +++ b/menu/menu_navigation.c @@ -111,17 +111,17 @@ void menu_navigation_descend_alphabet(menu_handle_t *menu, size_t *ptr_out) size_t i = 0; size_t ptr = *ptr_out; - if (!menu->scroll_indices_size) + if (!menu->scroll.indices.size) return; if (ptr == 0) return; - i = menu->scroll_indices_size - 1; + i = menu->scroll.indices.size - 1; - while (i && menu->scroll_indices[i - 1] >= ptr) + while (i && menu->scroll.indices.list[i - 1] >= ptr) i--; - *ptr_out = menu->scroll_indices[i - 1]; + *ptr_out = menu->scroll.indices.list[i - 1]; if (driver.menu_ctx && driver.menu_ctx->navigation_descend_alphabet) driver.menu_ctx->navigation_descend_alphabet(menu, ptr_out); @@ -143,16 +143,16 @@ void menu_navigation_ascend_alphabet(menu_handle_t *menu, size_t *ptr_out) size_t i = 0; size_t ptr = *ptr_out; - if (!menu->scroll_indices_size) + if (!menu->scroll.indices.size) return; - if (ptr == menu->scroll_indices[menu->scroll_indices_size - 1]) + if (ptr == menu->scroll.indices.list[menu->scroll.indices.size - 1]) return; - while (i < menu->scroll_indices_size - 1 - && menu->scroll_indices[i + 1] <= ptr) + while (i < menu->scroll.indices.size - 1 + && menu->scroll.indices.list[i + 1] <= ptr) i++; - *ptr_out = menu->scroll_indices[i + 1]; + *ptr_out = menu->scroll.indices.list[i + 1]; if (driver.menu_ctx && driver.menu_ctx->navigation_descend_alphabet) driver.menu_ctx->navigation_descend_alphabet(menu, ptr_out);