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;
// 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;
UiBool isautoscaled;
double user_scale;
double scale;
+ int autoscaled_for_width;
+ int autoscaled_for_height;
ui_callback onbuttonpress;
void *onbuttonpressdata;