Joe Savona
d749ee847f
Separate UI tree preparation from line rendering ( #60022 )
...
## What changed
Add `UiTree::prepare` and `PreparedUiTree` to prepare styled inline text and row structure independently of viewport width. Compute minimum and preferred widths for text and nested rows, including gaps, and retain authored line breaks when filtering zero-width children.
Render the first line from the prepared tree while retaining overflow ellipses and hyperlink clipping.
## Testing
Add a preparation test covering row width measurements across styled text, nested rows, gaps, empty children, combining marks, and non-breaking spaces.
GitOrigin-RevId: 5f63366c0568a01cb55686d9f14c1b3fac90946f
2026-11-07 01:38:08 +00:00
..
2026-11-05 11:22:06 +00:00
2026-10-29 17:25:51 +00:00
2026-11-03 15:02:57 +00:00
2026-11-03 12:33:26 +00:00
2026-11-05 16:08:23 +00:00
2026-11-07 01:25:00 +00:00
2026-11-07 00:54:03 +00:00
2026-11-06 23:00:38 +00:00
2026-11-03 04:20:50 +00:00
2026-11-06 22:27:47 +00:00
2026-11-02 16:00:20 +00:00
2026-11-04 21:33:28 +00:00
2026-11-02 17:05:56 +00:00
2026-10-26 20:26:32 +00:00
2026-11-04 00:19:12 +00:00
2026-10-22 19:36:47 +00:00
2026-11-05 05:09:32 +00:00
2026-11-05 22:03:29 +00:00
2026-11-06 22:27:23 +00:00
2026-11-06 23:00:38 +00:00
2026-11-05 04:25:19 +00:00
2026-11-05 05:09:32 +00:00
2026-11-05 05:09:32 +00:00
2026-11-06 01:49:33 +00:00
2026-11-06 01:49:33 +00:00
2026-11-05 07:13:37 +00:00
2026-10-29 01:04:48 +00:00
2026-11-06 22:27:23 +00:00
2026-10-19 21:43:19 +00:00
2026-11-06 21:53:04 +00:00
2026-11-07 00:18:36 +00:00
2026-10-30 20:39:47 +00:00
2026-10-29 18:24:34 +00:00
2026-11-07 00:18:36 +00:00
2026-11-05 22:49:46 +00:00
2026-10-19 15:15:17 +00:00
2026-11-06 00:23:38 +00:00
2026-10-27 05:52:01 +00:00
2026-11-03 23:49:01 +00:00
2026-11-03 04:08:59 +00:00
2026-11-06 07:43:44 +00:00
2026-11-06 02:21:14 +00:00
2026-11-05 04:25:19 +00:00
2026-10-27 23:53:09 +00:00
2026-11-05 00:55:46 +00:00
2026-11-07 00:18:36 +00:00
2026-11-06 07:43:44 +00:00
2026-11-06 23:35:54 +00:00
2026-10-22 19:36:47 +00:00
2026-11-05 17:34:20 +00:00
2026-11-06 00:37:27 +00:00
2026-11-04 09:51:28 +00:00
2026-11-06 12:49:54 +00:00
2026-11-06 19:29:06 +00:00
2026-10-26 19:21:08 +00:00
2026-11-06 04:24:04 +00:00
2026-10-22 19:36:47 +00:00
2026-11-05 20:56:09 +00:00
2026-11-06 04:33:14 +00:00
2026-11-04 22:43:34 +00:00
2026-10-22 19:36:47 +00:00
2026-11-06 22:26:03 +00:00
2026-11-02 20:34:35 +00:00
2026-10-22 19:36:47 +00:00
2026-11-06 22:27:23 +00:00
2026-11-06 04:24:04 +00:00
2026-11-03 15:02:57 +00:00
2026-11-03 23:00:54 +00:00
2026-11-06 19:18:02 +00:00
2026-11-06 00:24:03 +00:00
2026-10-27 16:36:32 +00:00
2026-11-03 01:58:18 +00:00
2026-11-06 23:00:38 +00:00
2026-11-03 21:02:34 +00:00
2026-10-19 16:56:42 +00:00
2026-11-07 00:18:36 +00:00
2026-11-06 20:16:15 +00:00
2026-11-06 01:20:54 +00:00
2026-11-06 22:27:23 +00:00
2026-11-06 02:21:14 +00:00
2026-10-27 05:52:01 +00:00
2026-11-04 23:46:52 +00:00
2026-10-27 05:52:01 +00:00
2026-11-06 17:47:31 +00:00
2026-11-06 22:45:37 +00:00
2026-10-22 00:19:02 +00:00
2026-10-30 07:11:56 +00:00
2026-11-05 13:38:12 +00:00
2026-11-06 22:45:37 +00:00
2026-10-30 20:53:25 +00:00
2026-11-07 01:38:08 +00:00
2026-11-06 21:03:03 +00:00
2026-10-30 16:35:54 +00:00
2026-11-04 09:51:28 +00:00
2026-10-27 05:52:01 +00:00
2026-11-03 15:02:57 +00:00
2026-11-05 21:33:57 +00:00
2026-11-05 21:33:57 +00:00
2026-11-04 00:52:58 +00:00
2026-10-28 21:09:05 +00:00
2026-11-07 01:37:46 +00:00
2026-11-07 01:37:46 +00:00
2026-11-05 11:22:06 +00:00
2026-10-27 05:52:01 +00:00