diff options
Diffstat (limited to 'mpd-notification.c')
-rw-r--r-- | mpd-notification.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mpd-notification.c b/mpd-notification.c index c271131..8713947 100644 --- a/mpd-notification.c +++ b/mpd-notification.c @@ -345,7 +345,15 @@ int main(int argc, char ** argv) { printf("%s: found artwork in or near media file: %s/%s\n", program, music_dir, uri); if (scale > 0) { - if ((copy = gdk_pixbuf_scale_simple (pixbuf, scale, scale, GDK_INTERP_BILINEAR)) != NULL) { + int x, y; + + x = gdk_pixbuf_get_width(pixbuf); + y = gdk_pixbuf_get_height(pixbuf); + + if ((copy = gdk_pixbuf_scale_simple (pixbuf, + (x > y ? scale : scale * x / y), + (y > x ? scale : scale * y / x), + GDK_INTERP_BILINEAR)) != NULL) { g_object_unref(pixbuf); pixbuf = copy; } |