Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clear and consistent zoom behavior #371

Closed
NathanSweet opened this issue Jul 9, 2018 · 3 comments
Closed

Clear and consistent zoom behavior #371

NathanSweet opened this issue Jul 9, 2018 · 3 comments

Comments

@NathanSweet
Copy link

NathanSweet commented Jul 9, 2018

When ImageGlass is first opened, it gives me the zooming that I desire: scaled to fit in the window but not larger than 100%. However, if anything changes the zoom (Zoom to fit, Actual size, mouse wheel, etc), then the zoom becomes fixed and there is no way to go back to the default behavior.

I think it is most common to want to see an image at full resolution unless it doesn't fit, in which case it is scaled down. This is the default behavior, which is good, but there are many other zoom related settings and ways to modify the zoom level (mouse wheel). Which of these are active and how they interact should be clarified and it should be possible to go back to the default behavior.

I propose adding a zoom mode for the default zooming so it can be applied after changing the zoom in other waus. Possibly it could be called Zoom reset and it would deactivate Zoom to fit and any other zoom modes (eg Scale to width/height, Lock aspect ratio). However, it would be even more clear for the default zoom behavior to have an active/inactive state rather than just a reset button. This allows the default zoom mode to be deactivated when zoom is adjusted in some other way (eg mouse wheel). This way it is clear to the user that the default zoom behavior is no longer being applied when the button is no longer active.

Somewhat related to this, Zoom to fit ceases to be applied after changing the zoom level in other ways:

  1. Enable Zoom to fit (the image is up- or down-scaled to the window size).
  2. Click Actual size, Lock aspect ratio, or scroll the mouse wheel.

Result: Zoom changes to a fixed value and Zoom to fit no longer applies when the window changes, even though Zoom to fit still appears active.

Expected: Either a) Zoom to fit should become inactive when zoom is adjusted in other ways, or b) it should stay active and the zoom should be set when the window is resized.

A related consideration is what happens when loading the next/previous image. It is not typically useful to keep the zoom level when loading a different image. One use case is: I am going through images, I mouse wheel to zoom in, then I move on to the next image. Likely what I want is the default zoom behavior (scaled to fit in the window but not larger than 100%). If the default zoom is a mode which was deactivated when I mouse wheeled (which I believe is most clear), then maybe ImageGlass should have "default" zoom settings which are applied each time a new image is loaded (but not when reloaded). This would allow ImageGlass to be clear about what the current zoom behavior is, while preventing zoom changes from disrupting the viewing of subsequent images.

This issue is related to:
#353 (comment)
(zoom behavior should not change when a file is reloaded)

@d2phap
Copy link
Owner

d2phap commented Jul 9, 2018

Thanks for your feedback.
There are several zooming levels in ImageGlass:

1. Auto Fit

  • This is the default zooming in ImageGlass. The image will be scaled to fit in the window but not larger than 100%
  • Main menu > Refresh. Its name may be confusing to user.

2. Scale to fit

  • The image will be scaled to fit in the window disregarding to dimensions
  • Enable this option will disable Auto fit

3. Scale to Width / Height

  • Scale the viewing image to fit the width / height of window
  • Enable this option will disable Auto fit, Scale to fit

4. Lock zoom ratio

  • Lock the viewing image zoom ratio and apply to the next images.
  • Enable this option will disable Auto fit, Scale to fit, Scale to Width / Height

A related consideration is what happens when loading the next/previous image. It is not typically useful to keep the zoom level when loading a different image.

It depends on the level user chooses. If user chooses number 2, 4 (and 3 in the next versions), it will remain the zoom state.
The zooming levels are useful in some certain cases: viewing comic, viewing the web design, banner,...

This issue is related to:
#353 (comment)
(zoom behavior should not change when a file is reloaded)

If the zoom ratio is modified from default level (Auto fit), ImageGlass will remain the zoom ratio when user resizes window, or if the image being updated. It's very useful when user is modifying the viewing and wants to see the real-time update without breaking zooming position.

👉 To clarify the zooming functions, I will rename the Refresh menu to Reset image

@NathanSweet
Copy link
Author

Thanks for the clarification.

I will rename the Refresh menu to Reset image

Ah, Refresh made me think it would reload the image (which happens automatically). Being able to get my zoom back with Refresh helps a lot.

Reset zoom would be better text than Reset image. It's an ok solution, but I think it's still not as clear as making Auto zoom an exclusive mode like Zoom to fit. In other words, I propose renaming Refresh to Auto zoom and giving it an active state when enabled (and making Auto zoom and Zoom to fit deactive when they are not being applied).

If the zoom ratio is modified from default level (Auto fit), ImageGlass will remain the zoom ratio when user resizes window, or if the image being updated.

OK. I still think there is an issue here. Eg: press F5 for auto zoom, modify image externally, now auto zoom is no longer active.

Thanks for all your efforts on ImageGlass! It's very nice.

@d2phap
Copy link
Owner

d2phap commented Jul 15, 2018

Implemented this request, for the details: #378
For test version, pls go to: http://www.imageglass.org/moon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants