From 90499462ea70fb0c747d1e5b144a19ff9a543b9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Sun, 6 Sep 2026 21:18:06 -0300 Subject: [PATCH] Fix Reset zoom in new eeiv port. --- src/tools/eeiv/eeiv.cpp | 19 ++++++++++++++++++- src/tools/eeiv/eeiv.hpp | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/tools/eeiv/eeiv.cpp b/src/tools/eeiv/eeiv.cpp index 4c59f86f8..dd959796d 100644 --- a/src/tools/eeiv/eeiv.cpp +++ b/src/tools/eeiv/eeiv.cpp @@ -398,7 +398,7 @@ void App::registerKeyBindings() { } else if ( key == KEY_KP_MULTIPLY || key == KEY_Z ) { fitImage(); } else if ( key == KEY_KP_DIVIDE ) { - setImgScale( mConfig.DefaultImageZoom ); + resetImageZoom(); } else if ( key == KEY_N && mImageViewer->getImage()->getDrawable() ) { const Sizef size( mImageViewer->getImage()->getDrawable()->getPixelsSize() ); getWindow()->setSize( size.getWidth(), size.getHeight() ); @@ -470,6 +470,23 @@ void App::fitImage() { mImageViewer->resetImageView(); } +void App::resetImageZoom() { + if ( !mImageViewer || !mImageViewer->getImage() || !mImageViewer->getImage()->getDrawable() ) + return; + + UIImage* image = mImageViewer->getImage(); + const Sizef displayedSize( image->getPixelsSize() ); + const Sizef nativeSize( image->getDrawable()->getPixelsSize() ); + if ( displayedSize.getWidth() == 0.f || displayedSize.getHeight() == 0.f ) + return; + + const Float pixelDensity = PixelDensity::getPixelDensity(); + image->setScale( { mConfig.DefaultImageZoom * nativeSize.getWidth() / + ( displayedSize.getWidth() * pixelDensity ), + mConfig.DefaultImageZoom * nativeSize.getHeight() / + ( displayedSize.getHeight() * pixelDensity ) } ); +} + Sprite* App::getImageSprite() const { if ( !mImageViewer || !mImageViewer->getImage() || !mImageViewer->getImage()->getDrawable() ) return nullptr; diff --git a/src/tools/eeiv/eeiv.hpp b/src/tools/eeiv/eeiv.hpp index c53e48dcb..5dedabc44 100644 --- a/src/tools/eeiv/eeiv.hpp +++ b/src/tools/eeiv/eeiv.hpp @@ -69,6 +69,7 @@ class App { void updateSlideShow(); void toggleHelp(); void fitImage(); + void resetImageZoom(); Sprite* getImageSprite() const; void processDroppedFiles();