From: Simon Glass Date: Fri, 2 May 2025 14:46:57 +0000 (-0600) Subject: expo: Set up menu fully in bootflow_menu_start() X-Git-Tag: v2025.10-rc1~118^2~56^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a9d40b0478d8e73941fc4cbebc5597fd3a4e211;p=thirdparty%2Fu-boot.git 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 --- diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c index 56a34ac8ed5..43f074f19f5 100644 --- a/boot/bootflow_menu.c +++ b/boot/bootflow_menu.c @@ -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;