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:
@@ -208,10 +208,6 @@ int bootflow_menu_add_all(struct expo *exp)
|
||||
LOGR("bao", bootflow_menu_add(exp, bflow, i, &scn));
|
||||
}
|
||||
|
||||
ret = scene_arrange(scn);
|
||||
if (ret)
|
||||
return log_msg_ret("arr", ret);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -290,7 +286,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;
|
||||
|
||||
LOGR("bmn", bootflow_menu_setup(std, text_mode, &exp));
|
||||
@@ -305,6 +303,18 @@ int bootflow_menu_start(struct bootstd_priv *std, bool text_mode,
|
||||
|
||||
LOGR("bmd", expo_calc_dims(exp));
|
||||
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user