Mercurial > pidgin
changeset 16022:ec049b8a8619
Fix #54 (weird blist overlay icons) and a refcount leak (which matters more since the image is being copied now).
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Mon, 09 Apr 2007 02:17:25 +0000 |
parents | 5b9a35f9b2e4 |
children | fab49f913709 |
files | pidgin/gtksavedstatuses.c |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtksavedstatuses.c Mon Apr 09 02:04:03 2007 +0000 +++ b/pidgin/gtksavedstatuses.c Mon Apr 09 02:17:25 2007 +0000 @@ -1704,8 +1704,14 @@ GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU, "PidginStatusMenu"); if (emblem != NULL) { + /* copy the pixbuf so we're not modifying the stock image data when we overlay the disk */ + GdkPixbuf *pixbuf2 = gdk_pixbuf_copy(pixbuf); int width = gdk_pixbuf_get_width(pixbuf) / 2; int height = gdk_pixbuf_get_height(pixbuf) / 2; + + g_object_unref(G_OBJECT(pixbuf)); + pixbuf = pixbuf2; + gdk_pixbuf_composite(emblem, pixbuf, 0, height, width, height, 0, height, 0.5, 0.5, GDK_INTERP_BILINEAR, 255); @@ -1719,6 +1725,7 @@ SS_MENU_TEXT_COLUMN, purple_savedstatus_get_title(status), SS_MENU_DATA_COLUMN, GINT_TO_POINTER(purple_savedstatus_get_creation_time(status)), -1); + g_object_unref(G_OBJECT(pixbuf)); if (status == current_status) index = i;