a9ab9b3e5a2521a8d8b5bc3f5f7d880a703f7079
Table rows are now ours: each cell is a LinkedText, so a link in a cell is a span with a string annotation and one tap detector per cell rather than the layout node Compose builds for every LinkAnnotation -- the cost the paragraph change removed everywhere else. The renderer's outer table (width, sideways scroll, corners, dividers) stays; the row and cell were the only parts it offered no slot for. Cells still wrap and align to the top, with the same semantics the renderer gave them. Found while checking it: the hit test took the layout's nearest caret as the glyph under the finger, so a tap on the right half of any link glyph named the character after it and opened nothing. That was flaky in paragraphs already; it now checks the glyph on either side of the caret. Verified on the emulator: a linked cell and an autolink cell open their addresses, a plain cell opens nothing, a six-column table still scrolls sideways, and a link-free table draws as before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Languages
Rust
53%
Kotlin
44.4%
Shell
2.6%