diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4dbc6299..f3fb3cef 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -4,6 +4,7 @@ This is an UNSTABLE release. * jfjoch_viewer: Fix bug when resolution estimation/B-Factor/Profile radius were not set (NaN) * jfjoch_viewer: Show spots is off by default, resolution ring mode is enabled by default +* jfjoch_viewer: Fit to window of image is now default when size of the grid changes ## 1.0.0-rc.107 This is an UNSTABLE release. diff --git a/viewer/image_viewer/JFJochImage.cpp b/viewer/image_viewer/JFJochImage.cpp index 5a6e5732..5a9b97aa 100644 --- a/viewer/image_viewer/JFJochImage.cpp +++ b/viewer/image_viewer/JFJochImage.cpp @@ -698,11 +698,16 @@ void JFJochImage::fitToView() { } void JFJochImage::fitToViewShorterSideOnce() { - if (initial_fit_done_) + if (initial_fit_done_ && prev_H == H && prev_W == W) return; + + if (W == 0 || H == 0 || !viewport()) return; + prev_H = H; + prev_W = W; + // Guard against tiny or zero viewport (happens before layout settles) const QSize vp = viewport()->size(); if (vp.width() < 8 || vp.height() < 8) { diff --git a/viewer/image_viewer/JFJochImage.h b/viewer/image_viewer/JFJochImage.h index 02094c1b..3c6b1da4 100644 --- a/viewer/image_viewer/JFJochImage.h +++ b/viewer/image_viewer/JFJochImage.h @@ -35,6 +35,7 @@ protected: double scale_factor = 1.0; size_t W = 0, H = 0; + size_t prev_W = 0, prev_H = 0; // Track initial fit state and last image size bool initial_fit_done_ = false;