Skip to content

Add opt-in focus-within observation for containers - #346

Merged
tiensonqin merged 2 commits into
mainfrom
devin/1794111011-focus-within
Nov 8, 2026
Merged

tiensonqin merged 2 commits into
mainfrom
devin/1794111011-focus-within

Conversation

@tiensonqin

@tiensonqin tiensonqin commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Add ?on_focus_within:(bool -> unit) to row, column and box so a row-owned signal can keep a comment toolbar visible while a body link or reaction has focus. FocusWithinEnabled defaults to absent/off; observation never makes the container focusable.
  • Web coalesces node-local focusin/focusout checks with retained-node teardown. MyGo reads committed Handle.FocusWithin(c) in its existing event queue after descendant autofocus, then publishes one initial snapshot and distinct changes, including false on disabled/inert transitions. SwiftUI, Kotlin, Generic and mobile raw-wire hosts reject opt-in rather than silently omitting events.
  • MyGo rejects enabled observation on box display=contents at both OCaml and raw-wire admission, preserving transparent-anchor rendering without promising an absent native focus surface. Observe a real container instead; Web retains DOM-subtree observation for that combination.
  • Regenerate wire/MyGo schemas and document migration. No SDK, Dune, dependency or storage changes.

Checked: OCaml @all/@runtest, schema generation and tests, Web build/unit tests, Go tests (including race)/vet and cross-builds, Swift wire build/test and Android :lui:testDebugUnitTest. Added red-green regressions for committed autofocus snapshots and transparent-box admission. No GUI validation in this slice.

Link to Devin session: https://app.devin.ai/sessions/71c38037048d4f76b7cef6d695621ef6
Open in Devin Desktop: https://app.devin.ai/desktop/session/71c38037048d4f76b7cef6d695621ef6?variant=devin
Requested by: @tiensonqin

@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@tiensonqin
tiensonqin merged commit 3193439 into main Nov 8, 2026
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant