diff libpurple/prpl.c @ 29531:33715feb7b8d

Add media_caps to PurpleBuddy structure and use it to determine the old caps in purple_prpl_got_media_caps.
author maiku@pidgin.im
date Tue, 20 Oct 2009 21:00:23 +0000
parents 7a6c114c1a49
children c5712737e59a
line wrap: on
line diff
--- a/libpurple/prpl.c	Tue Oct 20 20:42:58 2009 +0000
+++ b/libpurple/prpl.c	Tue Oct 20 21:00:23 2009 +0000
@@ -576,12 +576,16 @@
 
 	while (list) {
 		PurpleBuddy *buddy = list->data;
+		PurpleMediaCaps oldcaps = buddy->media_caps;
 		list = g_slist_delete_link(list, list);
+		buddy->media_caps = purple_prpl_get_media_caps(account, name);
+
+		if (oldcaps == buddy->media_caps)
+			continue;
 
 		purple_signal_emit(purple_blist_get_handle(),
 				"buddy-caps-changed", buddy,
-				purple_prpl_get_media_caps(account, name),
-				PURPLE_MEDIA_CAPS_NONE);
+				buddy->media_caps, oldcaps);
 	}
 #endif
 }