overlays: allow to go to begin/end of list without auto repeat

This commit is contained in:
Megamouse 2026-02-25 07:50:26 +01:00
parent f6429a1ae8
commit 8a0eae0ccd
3 changed files with 20 additions and 2 deletions

View file

@ -215,12 +215,24 @@ namespace rsx
case pad_button::dpad_up:
case pad_button::ls_up:
{
if (!is_auto_repeat && get_selected_index() <= 0)
{
select_entry(get_elements_count() - 1);
break;
}
select_previous();
break;
}
case pad_button::dpad_down:
case pad_button::ls_down:
{
if (!is_auto_repeat && get_selected_index() >= (get_elements_count() - 1))
{
select_entry(0);
break;
}
select_next();
break;
}

View file

@ -189,7 +189,12 @@ namespace rsx
update_selection();
}
int list_view::get_selected_index() const
u16 list_view::get_elements_count() const
{
return m_elements_count;
}
s32 list_view::get_selected_index() const
{
return m_selected_entry;
}

View file

@ -34,7 +34,8 @@ namespace rsx
void add_entry(std::unique_ptr<overlay_element>& entry);
int get_selected_index() const;
u16 get_elements_count() const;
s32 get_selected_index() const;
bool get_cancel_only() const;
const overlay_element* get_selected_entry() const;