Skip to content

application: forward a handler's native controls to the Surface - #6

Merged
tannevaled merged 1 commit into
mainfrom
feat/native-controls
Aug 31, 2026
Merged

application: forward a handler's native controls to the Surface#6
tannevaled merged 1 commit into
mainfrom
feat/native-controls

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

A `Handler` that implements the new `NativeControlProvider` (`NativeControls() []toolkit.NativeControl`) has them wired onto `toolkit.Surface.Controls` in `bind` — the exact parallel to how an `Accessible` handler's `A11yElements` reach `Surface.Elements`. A back-end that can host native controls (go-widgets/window cocoa `syncNative`, v0.59.0) embeds and reconciles them over the framebuffer; one that cannot ignores the field.

This is what lets a self-rendering application — built on a `toolkit.Surface`, with no walkable widget tree, like the news reader — put real OS controls over its pixels: it describes them each frame the way it describes its accessibility.

Bumps toolkit → v0.299.0, window → v0.59.0. 100% coverage outside the native run loop; race clean.

A Handler that implements the new NativeControlProvider — NativeControls()
[]toolkit.NativeControl — has them wired onto toolkit.Surface.Controls in bind,
the exact parallel to how an Accessible handler's A11yElements reach
Surface.Elements. A back-end that can host native controls (go-widgets/window's
cocoa syncNative, from window v0.59.0) then embeds and reconciles them over the
framebuffer; one that cannot ignores the field.

This is what lets a self-rendering application — one built on a toolkit.Surface,
with no walkable widget tree — put real OS controls (a secure text field, a
button) over its pixels: it describes them each frame the same way it describes
its accessibility.

Bumps toolkit to v0.299.0 (NativeControl) and window to v0.59.0 (Surface.Controls).
@tannevaled
tannevaled merged commit 1601f97 into main Aug 31, 2026
5 checks passed
@tannevaled
tannevaled deleted the feat/native-controls branch August 31, 2026 11:45
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