# HG changeset patch # User Sean Egan # Date 1189808349 0 # Node ID d1d847810985b48df0835b1ce6cabef3e516e248 # Parent e98404d74a24ebd8bec751ff932e6474bf33d468 Make 200px the upper-bound for buddy icons. Prevents problems when people try using their 7megapixel digital camera images as custom icons. Fixes #105 diff -r e98404d74a24 -r d1d847810985 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Fri Sep 14 21:29:53 2007 +0000 +++ b/pidgin/gtkblist.c Fri Sep 14 22:19:09 2007 +0000 @@ -2264,18 +2264,19 @@ if (prpl_info && prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY) purple_buddy_icon_get_scale_size(&prpl_info->icon_spec, &scale_width, &scale_height); - if (scaled) { + if (scaled || scale_height > 200 || scale_width > 200) { + float scale_size = scaled ? 32.0 : 200.0; if(scale_height > scale_width) { - scale_width = 32.0 * (double)scale_width / (double)scale_height; - scale_height = 32; + scale_width = scale_size * (double)scale_width / (double)scale_height; + scale_height = scale_size; } else { - scale_height = 32.0 * (double)scale_height / (double)scale_width; - scale_width = 32; + scale_height = scale_size * (double)scale_height / (double)scale_width; + scale_width = scale_size; } - ret = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32); + ret = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_size, scale_size); gdk_pixbuf_fill(ret, 0x00000000); - gdk_pixbuf_scale(buf, ret, (32-scale_width)/2, (32-scale_height)/2, scale_width, scale_height, (32-scale_width)/2, (32-scale_height)/2, (double)scale_width/(double)orig_width, (double)scale_height/(double)orig_height, GDK_INTERP_BILINEAR); + gdk_pixbuf_scale(buf, ret, (scale_size-scale_width)/2, (scale_size-scale_height)/2, scale_width, scale_height, (scale_size-scale_width)/2, (scale_size-scale_height)/2, (double)scale_width/(double)orig_width, (double)scale_height/(double)orig_height, GDK_INTERP_BILINEAR); if (pidgin_gdk_pixbuf_is_opaque(ret)) pidgin_gdk_pixbuf_make_round(ret); } else {