vectorcraft/docs
dotCooCoo fb2089aaf5 macOS: the app no longer reads the menus at every step of a move, scale or shape drag
On macOS, native_menu::sync reads every row of the menus (each
command's enabled and checked state, and each label) whenever
state_hash changes, and the macOS backend updates the AppKit items
whose label, enabled or checked state changed. The hash included the
active document's revision, and Session::preview makes a new revision
at each step of a drag, so the app read every row again at each step
of a move, scale or shape drag. In a release build on an M2 Max, that
took about 1.5 ms a step with one object selected, and 13.8 ms a step
with 5,001 objects selected.

While an interaction is open, state_hash leaves the revision out.
Move, scale and shape drags, dialog previews and the font menu's
preview are interactions. The menus are read when an interaction
begins and again on the frame it ends: when a drag's button is
released, when Escape cancels a drag, when a move is dragged onto a
panel, when a dialog's preview is applied or canceled, when the font
menu's preview ends, or when a control request such as
ui.dialog.cancel ends it. They are still read on a click or a key
press during an interaction.

docs/development.md says when the menus are updated during an
interaction.
2026-10-13 05:21:32 +07:00
..
brand Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:13 -04:00
images README: refresh the screenshots and renders, add a Perspective Grid shot 2026-10-08 02:39:29 +07:00
affinity-validation.md AF.4 docs: leave out shop listings and sandbox notes 2026-10-09 22:20:39 +07:00
architecture.md Print: adopt craft-print while retaining Windows 7 support 2026-10-12 14:20:48 +07:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#411) 2026-10-07 21:22:04 -04:00
control-protocol.md Fix #1442: an unknown parameter key is an error naming it and the nearest accepted key 2026-10-13 02:54:33 +07:00
development.md macOS: the app no longer reads the menus at every step of a move, scale or shape drag 2026-10-13 05:21:32 +07:00
effects-parity.md 3D and Materials: the bevel and rotation options take their documented names, and the new messages are in every catalog 2026-10-13 00:52:40 +07:00
file-format-parity.md Docs: ROADMAP 2026-10-12 adds #1434–#1497 (later merges of the day) 2026-10-13 03:25:37 +07:00
gaps.md Vietnamese: the 3D dialog's and 3D effects' rows the other complete catalogs have 2026-10-13 05:03:41 +07:00
hardware-parity.md Docs: ROADMAP 2026-10-12 adds #1434–#1497 (later merges of the day) 2026-10-13 03:25:37 +07:00
image-trace-quality.md Image Trace: photos are smoothed within their tones first, and stacked layers go by lightness 2026-10-13 04:28:02 +07:00
localization-parity.md Vietnamese: the 3D dialog's and 3D effects' rows the other complete catalogs have 2026-10-13 05:03:41 +07:00
mcp.md Fix #1471: making and restyling type reports text that doesn't fit its frame 2026-10-13 03:27:13 +07:00
plugins.md Plug-ins: numeric defaults stay in their declared range 2026-10-13 02:21:35 +07:00
releasing.md fix(packaging): RPMの依存を共有ライブラリ能力に修正 (#1275) 2026-10-12 07:26:02 +07:00
revolve.md M9: add live Revolve with artboard rotation and lighting controls 2026-10-10 23:44:46 +07:00
roadmap.md Docs: ROADMAP 2026-10-12 adds #1434–#1497 (later merges of the day) 2026-10-13 03:25:37 +07:00
shaper.md M2.9: add editable Shaper groups and shape orientation steps 2026-10-08 22:52:23 +01:00
target-app-parity.md Part of #1429: path, Pathfinder and live-object commands add and remove many objects in one pass 2026-10-13 05:21:31 +07:00
three-d.md 3D and Materials: curves follow a tolerance, and Rotate takes large outlines 2026-10-13 03:14:50 +07:00
type-parity.md Docs: ROADMAP 2026-10-12 adds #1434–#1497 (later merges of the day) 2026-10-13 03:25:37 +07:00
ui-parity.md Docs: ROADMAP 2026-10-12 adds #1434–#1497 (later merges of the day) 2026-10-13 03:25:37 +07:00
windows7.md Print: adopt craft-print while retaining Windows 7 support 2026-10-12 14:20:48 +07:00