Skip to content

Add Sticky Zoom to keep zoom level across image switches - #775

Merged
marcinz606 merged 1 commit into
marcinz606:mainfrom
thetalkingdrum:pr/sticky-zoom
Aug 8, 2026
Merged

Add Sticky Zoom to keep zoom level across image switches#775
marcinz606 merged 1 commit into
marcinz606:mainfrom
thetalkingdrum:pr/sticky-zoom

Conversation

@thetalkingdrum

Copy link
Copy Markdown
Contributor

Summary

Switching to a different frame always resets the canvas to fit-to-window. That's normally the right first look, but sometimes a smaller-than-fit image reads its composition better — easier to judge as a whole rather than blown up — especially on a larger screen. Previously you'd zoom out to that size, then have to redo it on every next frame.

Sticky Zoom (toolbar overflow menu, canvas right-click menu, and a bindable shortcut) keeps the current zoom level instead of resetting it when you move to another image. Off by default, so nothing changes unless you opt in, and persists across restarts like Immersive Canvas.

This is a fairly common convention in other image-viewing/editing apps, so it should feel familiar rather than novel.

Test plan

  • make all: 3476 passed, 1 pre-existing unrelated test_overflow_bar.py failure (confirmed failing identically on main before this branch)
  • Unit tests: set_sticky_zoom persistence (tests/test_desktop_session.py), navigation wiring — zoom resets by default, preserved when Sticky Zoom is on (tests/test_controller.py)
  • Manual: zoomed out, switched frames repeatedly with Sticky Zoom on and off, confirmed it sticks/resets as expected across a session

Navigating to another frame always reset the canvas to fit-to-window.
Sticky Zoom (toolbar overflow menu, canvas right-click menu, and a
bindable shortcut) keeps the current zoom level instead, and persists
across restarts like Immersive Canvas.
@marcinz606
marcinz606 merged commit c04b183 into marcinz606:main Aug 8, 2026
1 check passed
@thetalkingdrum
thetalkingdrum deleted the pr/sticky-zoom branch August 8, 2026 14:41
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.

2 participants