Undo / Redo
Every operation in the overlay is undoable.
| Shortcut | Action |
|---|---|
Ctrl/Cmd + Z | Undo the last operation |
Ctrl/Cmd + Shift + Z | Redo |
There are also Undo / Redo slices in the History group of the radial menu.
What Goes on the Stack
The undo stack records every change to the canvas’s object list:
- Drawing operations (strokes, shapes, lines, arrows, text)
- Note (comment-area) creation and edits
- Bubble and free-text placement
- Blur application
- Emoji placement
- Object deletion and z-order changes
- Session-area (the crop region) resize/move
- Background swap when you click a thumbnail in the screenshot history widget
If you can do it on the canvas, undo will reverse it.
How the Stack Stores State
Each entry on the stack is a deep-cloned snapshot of the canvas’s object list — the strokes, shapes, comments, and other items currently on the layer. Undoing pops a previous list off the stack and makes it the current scene; redoing reverses that.
The stack is in-memory only. No images are persisted, no disk cache, no eviction.
Practical consequence: undo/redo are bounded by your process’s memory, but in normal sessions the cost is small (object descriptions, not pixel buffers). There are no configurable size or count caps in the current build.
Blur Is Not Special
The blur tool is an ordinary canvas object that renders as a blurred patch. Undo treats it the same as any other object — there is no separate “unblurred pixel buffer” for blur, no Submit-time baking that differs from other tools, no “blur becomes permanent on Submit” mechanic.
The composite that gets written to screenshot.png on Submit includes whatever objects are currently in the canvas’s object list — including blur objects. If you draw a blur, undo it, then Submit, the blur is not in the submitted PNG. Same as any other tool.
Esc Preserves the Stack — But Briefly
The undo and redo stacks live in the overlay window’s memory. Hitting Esc to dismiss the overlay does not clear them — the window stays alive in the background, holding the stacks.
But the next hotkey press wipes them. A fresh capture resets the canvas, the undo stack, and the redo stack.
So:
- Esc → state survives in memory, invisible.
- Hotkey → fresh capture → state wiped.
If you wanted to keep your work, the right move is to Submit before the next hotkey press. Submit is what writes the state to disk.
Quitting Xenocept entirely also drops the in-memory undo history. The undo log is never persisted.