Mercurial > pidgin
diff pidgin/gtkimhtml.c @ 32667:e2a1510da13d
propagate from branch 'im.pidgin.pidgin' (head 5da91575f92c8c13d7a85eef338ec6da55e6fb26)
to branch 'im.pidgin.cpw.qulogic.gtk3' (head 53d36fd22e482079303664b9f3e13fa2a4b6f9b2)
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Mon, 22 Aug 2011 21:27:03 +0000 |
parents | a053474df2e9 323876c34a96 |
children | 3828a61c44da |
line wrap: on
line diff
--- a/pidgin/gtkimhtml.c Mon Apr 25 20:13:05 2011 +0000 +++ b/pidgin/gtkimhtml.c Mon Aug 22 21:27:03 2011 +0000 @@ -5095,16 +5095,8 @@ data = imhtml->funcs->image_get_data(image); len = imhtml->funcs->image_get_size(image); - - if (data && len) { - GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); - gdk_pixbuf_loader_write(loader, data, len, NULL); - gdk_pixbuf_loader_close(loader, NULL); - anim = gdk_pixbuf_loader_get_animation(loader); - if (anim) - g_object_ref(G_OBJECT(anim)); - g_object_unref(G_OBJECT(loader)); - } + if (data && len) + anim = pidgin_pixbuf_anim_from_data(data, len); } @@ -5444,9 +5436,9 @@ tag = sl->data; /** don't worry about non-printing tags ending */ if (tag_ends_here(tag, &iter, &next_iter) && - strlen(tag_to_html_end(tag)) > 0 && - strlen(tag_to_html_start(tag)) > 0) { - + *tag_to_html_end(tag) && + *tag_to_html_start(tag)) + { PidginTextTagData *tmp; GQueue *r = g_queue_new(); @@ -5768,18 +5760,19 @@ static void gtk_custom_smiley_size_prepared(GdkPixbufLoader *loader, gint width, gint height, gpointer data) { -#define CUSTOM_SMILEY_SIZE 96 /* XXX: Should this be a theme setting? */ - if (width <= CUSTOM_SMILEY_SIZE && height <= CUSTOM_SMILEY_SIZE) - return; - - if (width >= height) { - height = height * CUSTOM_SMILEY_SIZE / width; - width = CUSTOM_SMILEY_SIZE; - } else { - width = width * CUSTOM_SMILEY_SIZE / height; - height = CUSTOM_SMILEY_SIZE; + if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/resize_custom_smileys")) { + int custom_smileys_size = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/custom_smileys_size"); + if (width <= custom_smileys_size && height <= custom_smileys_size) + return; + + if (width >= height) { + height = height * custom_smileys_size / width; + width = custom_smileys_size; + } else { + width = width * custom_smileys_size / height; + height = custom_smileys_size; + } } - gdk_pixbuf_loader_set_size(loader, width, height); }