expo: Set up menu fully in bootflow_menu_start()

Apply the theme, calculate dimensions, highlight the menu and arrange
the scene correctly, so that everything is ready to go when the expo
is rendered.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2025-05-02 08:46:57 -06:00
parent f769735f88
commit 8a9d40b047

View File

@ -212,10 +212,6 @@ int bootflow_menu_add_all(struct expo *exp)
return log_msg_ret("bao", ret);
}
ret = scene_arrange(scn);
if (ret)
return log_msg_ret("arr", ret);
return 0;
}
@ -296,7 +292,9 @@ int bootflow_menu_setup(struct bootstd_priv *std, bool text_mode,
int bootflow_menu_start(struct bootstd_priv *std, bool text_mode,
struct expo **expp)
{
struct scene *scn;
struct expo *exp;
uint scene_id;
int ret;
ret = bootflow_menu_setup(std, text_mode, &exp);
@ -317,6 +315,18 @@ int bootflow_menu_start(struct bootstd_priv *std, bool text_mode,
if (ret)
return log_msg_ret("bmd", ret);
ret = expo_first_scene_id(exp);
if (ret < 0)
return log_msg_ret("scn", ret);
scene_id = ret;
scn = expo_lookup_scene_id(exp, scene_id);
scene_set_highlight_id(scn, OBJ_MENU);
ret = scene_arrange(scn);
if (ret)
return log_msg_ret("arr", ret);
*expp = exp;
return 0;