Skip to content

Releases: windowkit/win32

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 04 Oct 10:34
4df4fde

0.0.9 (2026-10-04)

Features

  • text: justify: true justifies a layout's lines as DirectWrite does, layoutMetrics(handle, { minWidth: false }) leaves the min-content width to layoutMinWidth, and textFeatures() says what a layout takes — where a caller justified each paragraph by spacing its words itself, in three layouts, and every layout ran the line breaker a second time for a width nobody asked for (#16) (686defa)

v0.0.8

Choose a tag to compare

@github-actions github-actions released this 04 Oct 09:45
7ce269c

0.0.8 (2026-10-04)

Features

  • setCursor, GDI face names (fontFamilyOf), font width, letter spacing, OpenType features and x-height for react-x11's Windows text engine (#14) (59c7862)

v0.0.7

Choose a tag to compare

@github-actions github-actions released this 03 Oct 23:24
32f1bf6

0.0.7 (2026-10-03)

Features

  • ctxClip takes the fill rule ctxFill takes, so a ring clipped evenodd cuts a ring where it cut the square around it (#12) (9380558)

v0.0.6

Choose a tag to compare

@github-actions github-actions released this 29 Sep 23:50
f93d179

0.0.6 (2026-09-29)

Features

  • ctxRoundRectXY and op 9, a rounded rect whose corners are elliptical (#10) (bb4cb30)

v0.0.5

Choose a tag to compare

@github-actions github-actions released this 24 Sep 03:25
fd3f9f3

0.0.5 (2026-09-24)

Bug fixes

  • a press on a popup leaves activation where it was (#8) (e79d663)

v0.0.4

Choose a tag to compare

@github-actions github-actions released this 23 Sep 23:55
ba5c9ba

0.0.4 (2026-09-23)

Features

  • text: layoutCoverage — a layout's coverage without a surface (#6) (89fe937)

v0.0.3

Choose a tag to compare

@github-actions github-actions released this 23 Sep 11:32
48b1bdc

0.0.3 (2026-09-23)

Bug fixes

  • a dash offset is pixels, as canvas states it (#4) (77b0315)

v0.0.2

Choose a tag to compare

@github-actions github-actions released this 23 Sep 02:05
64847d0

0.0.2 (2026-09-23)

Features

  • layers over GL swap chains; perf for fills, strokes and the UIA mirror (#2) (8e9f458)

v0.0.1

Choose a tag to compare

@sidorares sidorares released this 20 Sep 12:56

The first release of the mechanism-only Win32 bridge for
react-x11 — HWNDs on a UI thread of
their own, DirectComposition surfaces, a Direct2D verb table and DirectWrite
text.

npm install @windowkit/win32

JS never waits on the UI thread. Every JS→UI call is a command on a queue
and every answer an event, so Windows' modal loops — DoDragDrop,
TrackPopupMenuEx, IFileDialog::Show — never freeze Node. Timers keep
firing and React keeps committing while a drag or a dialog is up.

133 verbs, roughly by area: 36 ctx* verbs over Direct2D; DirectWrite layouts,
font matching and glyph runs; windows, input and IME; drag and drop over OLE; a
UI Automation provider answered from a mirror of the tree; a WGL context over
WGL_NV_DX_interop2; <Frame> panes over a shared composition surface; frame
pacing on the compositor clock; the tray, taskbar, jump lists and AppUserModelID.

Binaries

prebuilds/win32-x64/ and prebuilds/win32-arm64/ both ride in the npm
tarball — npm resolves a package per platform and not per architecture — and
scripts/install.js picks the one that matches at install time. Neither is
cross-compiled: each was built and arch-checked on a runner of its own
architecture, in the CI run on this commit. Without a match the install falls
back to node-gyp rebuild, and a failure there warns rather than breaking the
install, because this is an optional dependency and the renderer's answer to a
missing backend is to use another one.

Attached: both binaries, and the published tarball
(shasum 43bbfa733671c9f984d55c2b0debc758917c6e13).

About this one release

Published by hand from a laptop, so it carries no provenance attestation.
npm's trusted publishing has to be configured on a package that already exists,
which makes the first release the one that cannot come from CI. Every release
after this is a release-please pull request, published by the workflow with
--provenance and no token anywhere. See
docs/releasing.md.

Not yet here: activation — file associations, URL schemes, and a second
launch handing its arguments to the first — and pointer and keyboard grabs.