Skip to content

feat: spotlight magnifier - #355

Merged
devmobasa merged 3 commits into
mainfrom
feat/spotlight-magnifier
Aug 25, 2026
Merged

feat: spotlight magnifier#355
devmobasa merged 3 commits into
mainfrom
feat/spotlight-magnifier

Conversation

@devmobasa

Copy link
Copy Markdown
Owner

Summary

  • Add per-Spotlight magnification from 1× to 4×, with a configurable default and session persistence.
  • Render magnified loupes from completed canvas/background pixels across solid boards, Freeze, Zoom, captures, thumbnails, and exports.
  • Add three controls: the style pill, scrolling over a loupe, and an on-canvas drag handle.
  • Preserve correct undo/history behavior across wheel gestures, autosave, shutdown, page and board changes, session replacement, and output transitions.

Interaction details

  • Magnification changes in 0.25× steps.
  • High-resolution wheels accumulate value120 units without prematurely applying partial ticks.
  • Touchpad gestures remain one undo action until axis_stop; wheel-like sources use a quiet-period fallback.
  • Locked topmost loupes claim scrolling without changing themselves or an overlapping loupe underneath.
  • The on-canvas control remains reachable on panned, zoomed, and edge-positioned canvases.

Rendering and compatibility

  • Existing sessions default older Spotlight shapes to 1×.
  • Magnification is stored per shape, while the configured value seeds newly drawn Spotlights.
  • Live transparent boards retain the normal opening and suggest Freeze when magnification lacks a complete pixel source.
  • Transparent exports fail explicitly instead of silently producing an unmagnified result.
  • PDF pages containing magnified Spotlights are rasterized for correct pixel sampling while page labels remain vector content.
  • Adds Spotlight-specific rendering metrics and retained-surface lifecycle hardening.

@devmobasa
devmobasa merged commit 483f535 into main Aug 25, 2026
2 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