Mercurial > pidgin
changeset 16686:4a020cf5942d
merge of '45bdc7f0cf3d3c9229f3fcd9de71b882131c05c0'
and '8ce6e4b908249fabc820ae1eb512cc4ee075282a'
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Mon, 30 Apr 2007 00:45:01 +0000 |
parents | 34618fedf5b9 (current diff) 7fad94837f9e (diff) |
children | 8f4d82a1aa6d |
files | |
diffstat | 4 files changed, 37 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/Makefile.am Wed Apr 25 02:25:53 2007 +0000 +++ b/doc/Makefile.am Mon Apr 30 00:45:01 2007 +0000 @@ -21,6 +21,7 @@ gtklog-signals.dox \ gtkimhtml-signals.dox \ gtkrc-2.0 \ + imgstore-signals.dox \ log-signals.dox \ notify-signals.dox \ pidgin.1.in \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/imgstore-signals.dox Mon Apr 30 00:45:01 2007 +0000 @@ -0,0 +1,24 @@ +/** @page imgstore-signals Image Store Signals + + @signals + @signal image-deleting + @endsignals + + <hr> + + @signaldef image-deleting + @signalproto +char *(*image_deleting)(const PurpleStoredImage *img); + @endsignalproto + @signaldesc + Emitted when a PurpleStoredImage is about to be destroyed. This allows + for what amounts to weak references. Code can hold onto a pointer to + the PurpleStoredImage without actually "holding" a reference. They can + then use a signal handler to let them know when their img is about to + be destroyed. + @param img The image about to be destroyed. + @note It's not possible to purple_imgstore_ref() img to save it. + @endsignaldef + +*/ +// vim: syntax=c tw=75 et
--- a/libpurple/buddyicon.c Wed Apr 25 02:25:53 2007 +0000 +++ b/libpurple/buddyicon.c Mon Apr 30 00:45:01 2007 +0000 @@ -208,7 +208,7 @@ } static void -image_deleting_cb(PurpleStoredImage *img, gpointer data) +image_deleting_cb(const PurpleStoredImage *img, gpointer data) { const char *filename = purple_imgstore_get_filename(img);
--- a/pidgin/gtkstatusbox.c Wed Apr 25 02:25:53 2007 +0000 +++ b/pidgin/gtkstatusbox.c Mon Apr 30 00:45:01 2007 +0000 @@ -1449,9 +1449,18 @@ data = pidgin_convert_buddy_icon(plug, filename, &len); img = purple_buddy_icons_set_account_icon(account, data, len); purple_account_set_buddy_icon_path(account, filename); + } + } + } - purple_account_set_bool(account, "use-global-buddyicon", (filename != NULL)); - } + /* Even if no accounts were processed, load the icon that was set. */ + if (filename != NULL) + { + gchar *contents; + gsize size; + if (g_file_get_contents(filename, &contents, &size, NULL)) + { + img = purple_imgstore_add(contents, size, filename); } } }