nsxiv6d1e006
Do not limit fit-to-win to smallest zoom level
Related to issue #303
+4 −7
1 file changed
- M image.c +4 −7
| @@ -393,12 +393,11 @@ void img_check_pan(img_t *img, bool moved) | |||
| 393 | 393 | ||
| 394 | 394 | bool img_fit(img_t *img) | |
| 395 | 395 | { | |
| 396 | − | float z, zmax, zw, zh; | |
| 396 | + | float z, zw, zh; | |
| 397 | 397 | ||
| 398 | 398 | if (img->scalemode == SCALE_ZOOM) | |
| 399 | 399 | return false; | |
| 400 | 400 | ||
| 401 | − | zmax = img->scalemode == SCALE_DOWN ? 1.0 : zoom_max; | |
| 402 | 401 | zw = (float) img->win->w / (float) img->w; | |
| 403 | 402 | zh = (float) img->win->h / (float) img->h; | |
| 404 | 403 | ||
| @@ -413,9 +412,7 @@ bool img_fit(img_t *img) | |||
| 413 | 412 | z = MIN(zw, zh); | |
| 414 | 413 | break; | |
| 415 | 414 | } | |
| 416 | − | ||
| 417 | − | z = MAX(z, zoom_min); | |
| 418 | − | z = MIN(z, zmax); | |
| 415 | + | z = MIN(z, img->scalemode == SCALE_DOWN ? 1.0 : zoom_max); | |
| 419 | 416 | ||
| 420 | 417 | if (zoomdiff(img, z) != 0) { | |
| 421 | 418 | img->zoom = z; | |
| @@ -563,7 +560,7 @@ bool img_zoom_in(img_t *img) | |||
| 563 | 560 | int i; | |
| 564 | 561 | float z; | |
| 565 | 562 | ||
| 566 | − | for (i = 1; i < ARRLEN(zoom_levels); i++) { | |
| 563 | + | for (i = 0; i < ARRLEN(zoom_levels); i++) { | |
| 567 | 564 | z = zoom_levels[i] / 100.0; | |
| 568 | 565 | if (zoomdiff(img, z) > 0) | |
| 569 | 566 | return img_zoom(img, z); | |
| @@ -576,7 +573,7 @@ bool img_zoom_out(img_t *img) | |||
| 576 | 573 | int i; | |
| 577 | 574 | float z; | |
| 578 | 575 | ||
| 579 | − | for (i = ARRLEN(zoom_levels) - 2; i >= 0; i--) { | |
| 576 | + | for (i = ARRLEN(zoom_levels) - 1; i >= 0; i--) { | |
| 580 | 577 | z = zoom_levels[i] / 100.0; | |
| 581 | 578 | if (zoomdiff(img, z) < 0) | |
| 582 | 579 | return img_zoom(img, z); | |