From: Simon Glass <simon.glass@canonical.com>
Update scene_render_deps() to call scene_txtin_render_deps() for
textedit objects by grouping SCENEOBJT_TEXTEDIT with SCENEOBJT_TEXTLINE.
This enables proper cursor handling when the textedit is open.
Add a test for textedit highlighting.
Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---
boot/scene.c | 2 +-
test/boot/expo.c | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
@@ -983,13 +983,13 @@ int scene_render_deps(struct scene *scn, uint id)
case SCENEOBJT_IMAGE:
case SCENEOBJT_TEXT:
case SCENEOBJT_BOX:
- case SCENEOBJT_TEXTEDIT:
break;
case SCENEOBJT_MENU:
scene_menu_render_deps(scn,
(struct scene_obj_menu *)obj);
break;
case SCENEOBJT_TEXTLINE:
+ case SCENEOBJT_TEXTEDIT:
scene_txtin_render_deps(scn, obj, scene_obj_txtin(obj));
break;
}
@@ -1572,6 +1572,12 @@ static int expo_render_textedit(struct unit_test_state *uts)
ut_assertok(expo_render(exp));
ut_asserteq(19841, video_compress_fb(uts, dev, false));
+ /* highlight the textedit and re-render */
+ scene_set_highlight_id(scn, OBJ_TEXTED);
+ ut_assertok(scene_arrange(scn));
+ ut_assertok(expo_render(exp));
+ ut_asserteq(21662, video_compress_fb(uts, dev, false));
+
abuf_uninit(&buf);
abuf_uninit(&logo_copy);