From: Olaf Wintermann Date: Mon, 7 Sep 2026 16:57:18 +0000 (+0200) Subject: improve imageviewer X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fmain;p=note.git improve imageviewer --- diff --git a/ui/gtk/image.c b/ui/gtk/image.c index 0ed45c7..af5f45c 100644 --- a/ui/gtk/image.c +++ b/ui/gtk/image.c @@ -206,6 +206,8 @@ UIWIDGET ui_imageviewer_create(UiObject *obj, UiImageViewerArgs *args) { 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 @@ void ui_cairo_draw_image(UiImageViewer *imgviewer, cairo_t *cr, int width, int h // 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 --git a/ui/gtk/image.h b/ui/gtk/image.h index 0721032..a95efed 100644 --- a/ui/gtk/image.h +++ b/ui/gtk/image.h @@ -57,6 +57,8 @@ typedef struct UiImageViewer { UiBool isautoscaled; double user_scale; double scale; + int autoscaled_for_width; + int autoscaled_for_height; ui_callback onbuttonpress; void *onbuttonpressdata;