Undo and history
Undo follows the focused undo surface, not merely whatever glyph name appears in a history item. History is the collaboration log. Rows the current Cmd/Ctrl+Z stack cannot reach are hidden by default, or faded when you reveal them. History bright rows and Cmd/Ctrl+Z use the same surface filter — there is no font-stack fallback when that filter is empty.
Undo surfaceslink
| Surface | Focused view | Cmd/Ctrl+Z undoes |
|---|---|---|
| Canvas (Editing View) | Glyph editor in edit mode or text mode | Layer-origin edits for the current glyph/layer (and other written layers of that glyph), plus Editing View–owned font edits such as text-mode kerning, kern-group membership, and canvas master-guide promotions |
| Overview | Glyph overview | Glyph-structural edits (paste, duplicate, delete, reorder, codepoints, rename, …) |
| Font Info | Font Info (non-Features) | Pure font-wide edits made there (names, UPM, axes, master topology, …) — not Editing View–owned kerning |
| Features | Font Info Features with an item selected | That feature / class / prefix only |
| Automation | Scripts, Konsole, or Assistant | Font mutations produced by Python or the Assistant |
Undo surfaces do not share one interleaved stack. A later font-info edit does not block undoing an earlier canvas edit. Automation is the exception while those views are focused: Cmd/Ctrl+Z walks only Python- and assistant-sourced items, not ordinary GUI edits from other undo surfaces.
Editing View–owned font editslink
Some writes live under font-root paths (masters.*.kerning, kern groups, promoting a guide to the master) but were made from the Editing View. Those commits stamp an undo surface affinity of canvas so they stay on the Editing View stack for both History and Cmd/Ctrl+Z. Font Info does not claim them.
Originating layerlink
Canvas undo keys off where the forward edit started, not every layer touched afterward.
- Edit layer A → cascade updates dependents → undoable on A, not on a dependent layer.
- Paste a glyph in Overview → open it on the canvas → creation stays overview-only, even if the history item names that glyph.
- In text mode (no selected layer), layer-origin edits for the caret glyph remain reachable, and affinity-stamped kerning edits are reachable too.
History visibilitylink
- Bright / listed (default): items on the current undo surface’s undo and redo stack (including undone edits and their undo/redo rows).
- Hidden by default: everything else, replaced by compact markers such as
3 hidden · other undo surface. - Title-bar toggle (visibility icon): show unreachable rows faded. Clicking a hidden-run marker turns the toggle on.
- Fade means “outside this undo surface”;
Cmd/Ctrl+Zundoes the newest active bright item, andCmd/Ctrl+Shift+Zcan redo undone bright items. - Opening History does not change the undo surface. Filtering stays on the last focused main view. Scripts / Konsole / Assistant switch to the automation undo surface while they are focused.
Ace editorslink
In the Script Editor and Features Ace editors:
Cmd/Ctrl+Z/Cmd/Ctrl+Shift+Zundo and redo font history for the current undo surfaceCmd/Ctrl+Alt/Option+Z/Cmd/Ctrl+Alt/Option+Shift+Zundo and redo text inside the Ace buffer
While Scripts, Konsole, or Assistant is focused, the same font-history shortcuts apply even when the caret is in the prompt or terminal.
Reading a history rowlink
- Title — transaction summary
- Action chip —
edit(grayscale),undo/redo(colored) - Origin — follows the item’s undo surface:
Layer · {glyph} / {master},Editing View,Overview,Font, orFeature · … account_tree— transaction recomposed dependent layers- Time / duration / size — development builds only
Practical checks: confirm which view is focused; for a missing scripted edit, focus Scripts / Konsole / Assistant or reveal rows from other undo surfaces; for canvas cascades, return to the layer you edited.
Related: Glyph editor, Feature code editor, Keyboard shortcuts, Common problems.