summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-06-06 09:17:48 +0200
committerDaniel Friesel <derf@finalrewind.org>2011-06-06 09:17:48 +0200
commit481a0ec264aab1509f83334e66d929154ceb1d74 (patch)
tree525bb2da57f84bc793cc0f71f563c52a41906a91
parent3d0806ca24bd8ae3c5547f4a03ee06b95f56cfdd (diff)
downloadfeh-481a0ec264aab1509f83334e66d929154ceb1d74.zip
Respect --zoom 100 in --fullscreen mode (closes #47)
-rw-r--r--ChangeLog3
-rw-r--r--man/feh.pre8
-rw-r--r--src/winwidget.c10
3 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 5a88eca..8e9ef83 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
git HEAD
* Fix --draw-filename "x of y" being cut off by short filenames
+ <https://github.com/derf/feh/issues/45>
+ * Use --zoom 100 to show all images at 100% in --fullscreen mode
+ <https://github.com/derf/feh/issues/47>
Thu, 19 May 2011 22:32:42 +0200 Daniel Friesel <derf@finalrewind.org>
diff --git a/man/feh.pre b/man/feh.pre
index f87f0f8..c3da251 100644
--- a/man/feh.pre
+++ b/man/feh.pre
@@ -239,6 +239,14 @@ below each thumbnail. Enables
.It Cm -F , --fullscreen
.
Make the window fullscreen.
+Note that in this mode, large images will always be scaled down to fit the
+screen,
+.Cm --zoom Ar zoom
+only affects smaller images and never scales larger than necessary to fit the
+screen size. The only exception is a
+.Ar zoom
+of 100, in which case images will always be shown at 100% zoom, no matter
+their dimensions.
.
.It Cm -g , --geometry Ar width No x Ar height
.
diff --git a/src/winwidget.c b/src/winwidget.c
index 157817f..57a8b1d 100644
--- a/src/winwidget.c
+++ b/src/winwidget.c
@@ -464,10 +464,12 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias)
double old_zoom = winwid->zoom;
winwid->zoom = 0.01 * opt.default_zoom;
- if ((winwid->im_h * winwid->zoom) > max_h)
- winwid->zoom = old_zoom;
- if ((winwid->im_w * winwid->zoom) > max_w)
- winwid->zoom = old_zoom;
+ if (winwid->zoom != 1.0) {
+ if ((winwid->im_h * winwid->zoom) > max_h)
+ winwid->zoom = old_zoom;
+ else if ((winwid->im_w * winwid->zoom) > max_w)
+ winwid->zoom = old_zoom;
+ }
winwid->im_x = ((int)
(max_w - (winwid->im_w * winwid->zoom))) >> 1;