diff options
author | Daniel Friesel <derf@finalrewind.org> | 2021-07-25 20:38:57 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2021-07-25 20:38:57 +0200 |
commit | 707892f24b6b6133f9bffc0b02ae300fbe3f6ad5 (patch) | |
tree | 2a236414642d5013d52ccf10c4d0ac1ed9c8bffe | |
parent | 07ab6beb73d622d5f250e8c9e7ceec66d49fd046 (diff) |
Set correct window size when applying --zoom outside of -. / -F
Needs further testing
-rw-r--r-- | src/winwidget.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/winwidget.c b/src/winwidget.c index 37031ec..f32b929 100644 --- a/src/winwidget.c +++ b/src/winwidget.c @@ -104,8 +104,13 @@ winwidget winwidget_create_from_image(Imlib_Image im, char type) ret->w = ret->im_w = gib_imlib_image_get_width(ret->im); ret->h = ret->im_h = gib_imlib_image_get_height(ret->im); - if (opt.full_screen && (type != WIN_TYPE_THUMBNAIL)) + if (opt.full_screen && (type != WIN_TYPE_THUMBNAIL)) { ret->full_screen = True; + } else if (opt.default_zoom) { + ret->zoom = 0.01 * opt.default_zoom; + ret->w *= ret->zoom; + ret->h *= ret->zoom; + } winwidget_create_window(ret, ret->w, ret->h); winwidget_render_image(ret, 1, 0); @@ -133,8 +138,13 @@ winwidget winwidget_create_from_file(gib_list * list, char type) ret->w = ret->im_w = gib_imlib_image_get_width(ret->im); ret->h = ret->im_h = gib_imlib_image_get_height(ret->im); D(("image is %dx%d pixels, format %s\n", ret->w, ret->h, gib_imlib_image_format(ret->im))); - if (opt.full_screen) + if (opt.full_screen) { ret->full_screen = True; + } else if (opt.default_zoom) { + ret->zoom = 0.01 * opt.default_zoom; + ret->w *= ret->zoom; + ret->h *= ret->zoom; + } winwidget_create_window(ret, ret->w, ret->h); winwidget_render_image(ret, 1, 0); } @@ -454,7 +464,12 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias) int antialias = 0; if (!winwid->full_screen && resize) { - winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0); + if (opt.default_zoom) { + winwid->zoom = 0.01 * opt.default_zoom; + winwidget_resize(winwid, winwid->im_w * winwid->zoom, winwid->im_h * winwid->zoom, 0); + } else { + winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0); + } winwidget_reset_image(winwid); } |