Skip to content

Releases: go-widgets/window

v0.73.0 — GTK NativeList

Choose a tag to compare

@tannevaled tannevaled released this 06 Sep 12:22
3bfd2e9

The GTK backend now hosts toolkit.NativeList via GtkListBox (go-gtk v0.6.0) — the Linux peer of cocoa's NSTableView list. NativeList is native on macOS + Linux; Windows keeps the drawn fallback. Proven by TestGTKBackendList under Xvfb.

🤖 Generated with Claude Code

v0.72.0 — win32 Progress/Spinner/Stepper

Choose a tag to compare

@tannevaled tannevaled released this 06 Sep 11:38
d3c23c1

win32 now hosts six of the ten new kinds: adds Progress (msctls_progress32), Spinner (PBS_MARQUEE), Stepper (msctls_updown32, WM_VSCROLL) to the earlier Search/TextView/Combo. Link/Date (need WM_NOTIFY+SYSTEMTIME) and Segmented/Color (no native Win32 equivalent) stay drawn pending a Windows validation pass. macOS + Linux host all ten natively.

v0.71.0 — win32 Search/TextView/Combo

Choose a tag to compare

@tannevaled tannevaled released this 06 Sep 08:54
f79ce16

The win32 backend now hosts three more of the ten new kinds by reusing its proven EDIT/COMBOBOX classes: Search, multi-line TextView, and editable Combo. Cross-built for windows/amd64+arm64. The remaining seven new kinds (Progress, Spinner, Stepper, Segmented, Link, Date, Color) still fall back to the drawn control on Windows — they need common-control classes that require a Windows session to validate. macOS + Linux host all ten natively (v0.70.0).

v0.70.0 — ten more native controls (macOS + Linux)

Choose a tag to compare

@tannevaled tannevaled released this 06 Sep 08:10
a040f42

GTK + cocoa backends host Progress, Spinner, Stepper, Search, editable Combo, Segmented, multi-line TextView, Link, Date, Color — full native coverage on macOS/Linux (live-tested: Xvfb + real AppKit). Windows falls back to drawn for these ten (native Win32 pass is a follow-up). Needs go-gtk v0.5.0 + appkit v0.5.0.

v0.66.0 — ten more native controls (macOS + Linux)

Choose a tag to compare

@tannevaled tannevaled released this 06 Sep 08:09
579cd27

The GTK and cocoa backends now host Progress, Spinner, Stepper, Search, editable Combo, Segmented, multi-line TextView, Link, Date, Color — full native-control coverage on macOS and Linux. Live-tested (Xvfb + real AppKit). Windows falls back to the drawn control for these ten (native Win32 pass is a follow-up). Needs go-gtk v0.5.0 + appkit v0.5.0.

v0.65.0 — GTK slider + pop-up (full control parity)

Choose a tag to compare

@tannevaled tannevaled released this 01 Sep 18:35
534999c

The GTK4-hosted backend now hosts NativeSlider (GtkScale) and NativePopUp (GtkDropDown) — the last two of the nine NativeKinds — with the same descriptor semantics as cocoa/win32 (slider value = Number/OnNumber; pop-up value = selected item string = Text/OnText). So all three desktop backends host every native control. Needs go-gtk/gtk4 v0.4.0.

v0.64.0 — GTK input routing

Choose a tag to compare

@tannevaled tannevaled released this 31 Aug 20:40
ce053e1

The GTK4-hosted Linux backend now routes pointer and key input to the Surface: clicks, scrolls and keystrokes reach the drawn regions (native controls still get theirs from GTK first). So the reader is fully navigable on Linux — proven end-to-end under Xvfb (a click on Settings opens the Settings view). Needs go-gtk/gtk4 v0.3.0.

v0.63.0 — GTK presents on demand (Repainter)

Choose a tag to compare

@tannevaled tannevaled released this 31 Aug 18:17
93106b1

The GTK4-hosted backend now implements window.Repainter: it presents only when a repaint was requested (via the application's NeedsPresent-gated loop), not on every frame-clock tick. Measured with the reader under Xvfb, idle presents fall from ~100% of ticks to ~7% — a ~15× cut in idle texture uploads — matching the Cocoa backend's on-demand policy. UI unchanged.

v0.62.0 — native GTK4 window presents frames

Choose a tag to compare

@tannevaled tannevaled released this 31 Aug 17:25
0ca9946

The GTK4-hosted Linux backend now actually shows pixels: sizes the GtkPicture in its GtkFixed (a content-less picture requested 0×0 and was invisible) and presents every frame from the GdkFrameClock via go-gtk v0.2.4's AddTickCallback (was a single pre-map present). newsreader -window with GO_WIDGETS_GTK=1 renders natively on Linux end-to-end (Xvfb-verified). Completes native windowing on cocoa+win32+gtk, CGO=0.

v0.55.0 — Config.Passive

Choose a tag to compare

@tannevaled tannevaled released this 27 Aug 19:15
67c6411

Config.Passive makes a window a picture and nothing else: it never becomes key, it ignores mouse events, and the application is made an accessory so it cannot steal the keyboard by appearing.

For a viewer — a head-up display, a surface inside glasses — taking input is not a feature but a trap: the keyboard leaves whatever the person was typing into, and the pointer that wanders onto the display it owns is invisible, because the picture is a capture of somewhere else. Measured on a pair of glasses; the way out was unplugging them.

A passive window is driven from outside instead: a global shortcut, a menu-bar item, a socket.