[Concept,27/27] expo: Render textedit dependencies correctly

Message ID 20260119204130.3972647-28-sjg@u-boot.org
State New
Headers
Series Expo debugging and textedit improvements (part E) |

Commit Message

Simon Glass Jan. 19, 2026, 8:41 p.m. UTC
  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(-)
  

Patch

diff --git a/boot/scene.c b/boot/scene.c
index 46bc9b64e64..306625361b4 100644
--- a/boot/scene.c
+++ b/boot/scene.c
@@ -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;
 		}
diff --git a/test/boot/expo.c b/test/boot/expo.c
index 79e77b83b0a..d7430dc4284 100644
--- a/test/boot/expo.c
+++ b/test/boot/expo.c
@@ -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);