Skip to content

Commit 16e9950

Browse files
committed
XMB/Ozone: Fix startup page glitch
1 parent 65fe838 commit 16e9950

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

menu/drivers/xmb.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2793,7 +2793,7 @@ static void xmb_list_switch(xmb_handle_t *xmb)
27932793
unsigned remember_selection_type = settings->uints.menu_remember_selection;
27942794
unsigned xmb_system_tab = xmb_get_system_tab(xmb, (unsigned)xmb->categories_selection_ptr);
27952795
bool xmb_main_tab_selected = false;
2796-
bool horizontal_animation = settings->bools.menu_horizontal_animation;
2796+
bool horizontal_animation = settings->bools.menu_horizontal_animation && xmb->allow_horizontal_animation;
27972797
int list_delta = 0;
27982798
unsigned animation_horizontal_highlight
27992799
= settings->uints.menu_xmb_animation_horizontal_highlight;
@@ -3500,7 +3500,7 @@ static void xmb_populate_entries(void *data,
35003500
else
35013501
xmb_list_open(xmb,
35023502
settings->uints.menu_xmb_animation_opening_main_menu,
3503-
settings->bools.menu_horizontal_animation,
3503+
settings->bools.menu_horizontal_animation && xmb->allow_horizontal_animation,
35043504
settings->bools.savestate_thumbnail_enable);
35053505

35063506
xmb_set_title(xmb);
@@ -9309,6 +9309,10 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
93099309
if (ctx_gen != xmb->context_generation)
93109310
goto ctx_destroyed;
93119311

9312+
/* Restore horizontal animation ability after first toggle */
9313+
if (xmb->is_first_frame)
9314+
xmb->allow_horizontal_animation = true;
9315+
93129316
/* First-frame init done — subsequent frames are normal.
93139317
* Cleared after the last ctx-destroyed guard so that a context
93149318
* death mid-frame leaves the flag set for the retry. */
@@ -9999,6 +10003,10 @@ static void xmb_toggle(void *userdata, bool menu_on)
999910003
else
1000010004
menu_st->flags |= MENU_ST_FLAG_PREVENT_POPULATE;
1000110005

10006+
/* Prevent initial jumping with startup page and CLI launch */
10007+
if (xmb->is_first_frame)
10008+
xmb->allow_horizontal_animation = false;
10009+
1000210010
xmb_toggle_horizontal_list(xmb);
1000310011

1000410012
/* Skip the fade-in on the very first frame after init: at

runloop.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6281,6 +6281,7 @@ static enum runloop_state_enum runloop_check_state(
62816281
}
62826282

62836283
menu_st->flags &= ~MENU_ST_FLAG_PENDING_STARTUP_PAGE;
6284+
return RUNLOOP_STATE_POLLED_AND_SLEEP;
62846285
}
62856286
else if (!menu_driver_iterate(menu_st, p_disp, anim_get_ptr(),
62866287
settings, action, current_time))

0 commit comments

Comments
 (0)