aboutsummaryrefslogtreecommitdiff
path: root/boot/expo.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-06-01 10:22:58 -0600
committerTom Rini <trini@konsulko.com>2023-07-14 12:54:51 -0400
commit4c87e073a4573159f97eb4ed80ec4088f33c7008 (patch)
tree52fb7976fe76163d61eb860c78bd16e00f87557a /boot/expo.c
parent756c9559e60a0ef8434128205adced937240925d (diff)
expo: Draw the current opened menu on top
When a menu is opened, it must be displayed over all other objects in the scene, so that all its items are visible. Handle this by drawing the menu object a second time, after all other objects have been drawn. Draw all of the objects which are dependent on the menu object. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot/expo.c')
-rw-r--r--boot/expo.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/boot/expo.c b/boot/expo.c
index d5e935966b..e99555163c 100644
--- a/boot/expo.c
+++ b/boot/expo.c
@@ -172,6 +172,18 @@ int expo_set_scene_id(struct expo *exp, uint scene_id)
return 0;
}
+int expo_first_scene_id(struct expo *exp)
+{
+ struct scene *scn;
+
+ if (list_empty(&exp->scene_head))
+ return -ENOENT;
+
+ scn = list_first_entry(&exp->scene_head, struct scene, sibling);
+
+ return scn->id;
+}
+
int expo_render(struct expo *exp)
{
struct udevice *dev = exp->display;