aboutsummaryrefslogtreecommitdiffstats
path: root/image.c
diff options
context:
space:
mode:
authorBert Münnich <be.muennich@googlemail.com>2012-08-07 12:57:07 +0200
committerBert Münnich <be.muennich@googlemail.com>2012-08-07 12:57:07 +0200
commit795beac132ad31a87a84bb46890466d971d83b01 (patch)
tree5d183431858de4fc1bed97d0b47f9316bf1114c1 /image.c
parentc86079e6503db20b4fd5cac5d4a162926ef06bf4 (diff)
parentb56989f8fbfa6ab32e1fa8f54c0d03ff924c7308 (diff)
downloadnsxiv-795beac132ad31a87a84bb46890466d971d83b01.tar.zst
Merge remote-tracking branch 'baskerville/master'
Diffstat (limited to 'image.c')
-rw-r--r--image.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/image.c b/image.c
index cb71efa..cb71fe3 100644
--- a/image.c
+++ b/image.c
@@ -365,7 +365,18 @@ bool img_fit(img_t *img) {
zw = (float) img->win->w / (float) img->w;
zh = (float) img->win->h / (float) img->h;
- z = MIN(zw, zh);
+ switch (img->scalemode) {
+ case SCALE_WIDTH:
+ z = zw;
+ break;
+ case SCALE_HEIGHT:
+ z = zh;
+ break;
+ default:
+ z = MIN(zw, zh);
+ break;
+ }
+
z = MAX(z, zoom_min);
z = MIN(z, zmax);
@@ -448,11 +459,11 @@ void img_render(img_t *img) {
img->dirty = false;
}
-bool img_fit_win(img_t *img) {
+bool img_fit_win(img_t *img, scalemode_t sm) {
if (img == NULL || img->im == NULL)
return false;
- img->scalemode = SCALE_FIT;
+ img->scalemode = sm;
return img_fit(img);
}