Scale PixBuf easier

This commit is contained in:
Benedikt Heine 2018-09-23 23:14:22 +02:00
parent 3b3ed0328e
commit 0306446efb

View File

@ -161,18 +161,18 @@ cairo_surface_t *icon_get_for_notification(const struct notification *n)
int h = gdk_pixbuf_get_height(pixbuf); int h = gdk_pixbuf_get_height(pixbuf);
int larger = w > h ? w : h; int larger = w > h ? w : h;
if (settings.max_icon_size && larger > settings.max_icon_size) { if (settings.max_icon_size && larger > settings.max_icon_size) {
GdkPixbuf *scaled; int scaled_w = settings.max_icon_size;
if (w >= h) { int scaled_h = settings.max_icon_size;
scaled = gdk_pixbuf_scale_simple(pixbuf, if (w >= h)
settings.max_icon_size, scaled_h = (settings.max_icon_size * h) / w;
(settings.max_icon_size * h) / w, else
GDK_INTERP_BILINEAR); scaled_w = (settings.max_icon_size * w) / h;
} else {
scaled = gdk_pixbuf_scale_simple(pixbuf, GdkPixbuf *scaled = gdk_pixbuf_scale_simple(
(settings.max_icon_size * w) / h, pixbuf,
settings.max_icon_size, scaled_w,
GDK_INTERP_BILINEAR); scaled_h,
} GDK_INTERP_BILINEAR);
g_object_unref(pixbuf); g_object_unref(pixbuf);
pixbuf = scaled; pixbuf = scaled;
} }