Skip to content

Remove global glyph state#132

Merged
kostyafarber merged 2 commits into
mainfrom
remove-global-glyph-state
Jul 5, 2026
Merged

Remove global glyph state#132
kostyafarber merged 2 commits into
mainfrom
remove-global-glyph-state

Conversation

@kostyafarber

Copy link
Copy Markdown
Collaborator

Summary

This PR removes the editor-global glyph model and moves selection/editor interaction around scene nodes, raw object IDs, and resolved ShiftObject views.

It deletes the old command layer, removes stale/missing glyph assumptions from the font APIs, introduces the renderer-local ShiftStore/Scene/Selection path, and restores core select/pen behavior against the new model.

What changed

  • Selection now stores raw editor IDs instead of glyph-specific entry maps.
  • Scene nodes are stored through a small flat ShiftStore, with Scene as the semantic wrapper.
  • Glyph-internal objects resolve through ShiftObject classes for points, anchors, contours, segments, and nodes.
  • Font/FontStore loading now materializes glyph/layer state directly without public stale/missing/loaded glyph projection APIs.
  • Select behavior was restored for point/segment selection, marquee, translate, resize, rotate, BendCurve, smooth toggle, segment upgrade, copy, cut, and duplicate.
  • Text-run editing is out of scope for this PR; the active select behavior no longer wires TextRunEdit.
  • Dead command and unused text/glyph finder files were removed.

Validation

  • pnpm test
  • pnpm lint:check
  • pnpm format:check
  • pnpm typecheck
  • pnpm deadcode:strict
  • git diff --cached --check

@kostyafarber kostyafarber force-pushed the remove-global-glyph-state branch from 04f49af to 44a812a Compare July 5, 2026 08:40
@kostyafarber kostyafarber marked this pull request as ready for review July 5, 2026 11:51
@kostyafarber kostyafarber merged commit 381ccbd into main Jul 5, 2026
11 of 12 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