# HG changeset patch # User Olaf Wintermann # Date 1788800159 -7200 # Node ID 7f142ba9fd5feb0cad9038a0b93af3a12802c9a2 # Parent a23d6609e70e706fdc8ad04ffca5ec907679097e imageviewer: keep autoscaling when the widget is resized (GTK) diff -r a23d6609e70e -r 7f142ba9fd5f ui/gtk/image.c --- a/ui/gtk/image.c Fri Sep 04 20:45:12 2026 +0200 +++ b/ui/gtk/image.c Mon Sep 07 18:55:59 2026 +0200 @@ -206,6 +206,8 @@ static void imageviewer_reset(UiImageViewer *imgviewer) { imgviewer->isautoscaled = FALSE; + imgviewer->autoscaled_for_width = 0; + imgviewer->autoscaled_for_height = 0; imgviewer->transx = 0; imgviewer->transy; imgviewer->begin_transx = 0; @@ -300,7 +302,10 @@ // if autoscale is enabled, scale the image to fill available space // if useradjustable is also enabled, the autoscaling is only done once if(imgviewer->autoscale && imgviewer->scale != 0) { - if(!imgviewer->isautoscaled) { + if(!imgviewer->isautoscaled || + width != imgviewer->autoscaled_for_width || + height != imgviewer->autoscaled_for_height) + { scale = dwidth / dpixwidth; if(dpixheight * scale > dheight) { scale = dheight / dpixheight; diff -r a23d6609e70e -r 7f142ba9fd5f ui/gtk/image.h --- a/ui/gtk/image.h Fri Sep 04 20:45:12 2026 +0200 +++ b/ui/gtk/image.h Mon Sep 07 18:55:59 2026 +0200 @@ -57,6 +57,8 @@ UiBool isautoscaled; double user_scale; double scale; + int autoscaled_for_width; + int autoscaled_for_height; ui_callback onbuttonpress; void *onbuttonpressdata;