Now makes sure the selected entry is visible upon entry, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14398 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
a51b55c985
commit
19567a9917
|
@ -284,6 +284,24 @@ last_selectable_item(Menu *menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool
|
||||||
|
make_item_visible(Menu *menu, int32 selected)
|
||||||
|
{
|
||||||
|
if (sMenuOffset > selected
|
||||||
|
|| sMenuOffset + menu_height() <= selected) {
|
||||||
|
if (sMenuOffset > selected)
|
||||||
|
sMenuOffset = selected;
|
||||||
|
else
|
||||||
|
sMenuOffset = selected + 1 - menu_height();
|
||||||
|
|
||||||
|
draw_menu(menu);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
run_menu(Menu *menu)
|
run_menu(Menu *menu)
|
||||||
{
|
{
|
||||||
|
@ -302,6 +320,8 @@ run_menu(Menu *menu)
|
||||||
item->Select(true);
|
item->Select(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
make_item_visible(menu, selected);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
union key key = wait_for_key();
|
union key key = wait_for_key();
|
||||||
|
|
||||||
|
@ -367,6 +387,7 @@ run_menu(Menu *menu)
|
||||||
if (item != NULL)
|
if (item != NULL)
|
||||||
item->Select(true);
|
item->Select(true);
|
||||||
|
|
||||||
|
make_item_visible(menu, selected);
|
||||||
// make sure that the new selected entry is visible
|
// make sure that the new selected entry is visible
|
||||||
if (sMenuOffset > selected
|
if (sMenuOffset > selected
|
||||||
|| sMenuOffset + menu_height() <= selected) {
|
|| sMenuOffset + menu_height() <= selected) {
|
||||||
|
|
Loading…
Reference in New Issue