# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1320896761 0 # Node ID e4ef8d86dfc45afc963e064b3d99144b1567bde9 # Parent 03f0a57c9e87176775bb9b8dba74ab40ce467244 Added support for GdkPixbuf inline data in GTK. diff -r 03f0a57c9e87 -r e4ef8d86dfc4 gtk/dw.c --- a/gtk/dw.c Wed Nov 09 10:34:58 2011 +0000 +++ b/gtk/dw.c Thu Nov 10 03:46:01 2011 +0000 @@ -1892,7 +1892,12 @@ { GdkPixmap *icon_pixmap = NULL; #if GTK_MAJOR_VERSION > 1 - GdkPixbuf *icon_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)data); + GdkPixbuf *icon_pixbuf; + + if(data[0] == 'G' && data[1] == 'd' && data[2] == 'k' && data[3] == 'P') + icon_pixbuf = gdk_pixbuf_new_from_inline(-1, (const guint8 *)data, FALSE, NULL); + else + icon_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)data); if(userwidth) *userwidth = gdk_pixbuf_get_width(icon_pixbuf); diff -r 03f0a57c9e87 -r e4ef8d86dfc4 gtk3/dw.c --- a/gtk3/dw.c Wed Nov 09 10:34:58 2011 +0000 +++ b/gtk3/dw.c Thu Nov 10 03:46:01 2011 +0000 @@ -1731,7 +1731,12 @@ if(data) { - GdkPixbuf *icon_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)data); + GdkPixbuf *icon_pixbuf; + + if(data[0] == 'G' && data[1] == 'd' && data[2] == 'k' && data[3] == 'P') + icon_pixbuf = gdk_pixbuf_new_from_inline(-1, (const guint8 *)data, FALSE, NULL); + else + icon_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)data); if(userwidth) *userwidth = gdk_pixbuf_get_width(icon_pixbuf);