[Telepathy-commits] [telepathy-salut/master] Also emit ContactCapabilitiesChanged when the new caps come from the cache (not only when the new caps come from a disco request)
Alban Crequy
alban.crequy at collabora.co.uk
Thu Feb 26 11:20:10 PST 2009
---
src/salut-presence-cache.c | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/salut-presence-cache.c b/src/salut-presence-cache.c
index 80e5f18..5ea871c 100644
--- a/src/salut-presence-cache.c
+++ b/src/salut-presence-cache.c
@@ -252,8 +252,8 @@ salut_presence_cache_class_init (SalutPresenceCacheClass *klass)
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- salut_signals_marshal_VOID__POINTER_POINTER_POINTER, G_TYPE_NONE,
- 3, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER);
+ salut_signals_marshal_VOID__UINT_POINTER_POINTER, G_TYPE_NONE,
+ 3, G_TYPE_UINT, G_TYPE_POINTER, G_TYPE_POINTER);
}
static void
@@ -527,7 +527,7 @@ _caps_disco_cb (SalutDisco *disco,
salut_contact_set_capabilities (waiter->contact,
per_channel_manager_caps);
g_signal_emit (cache, signals[CAPABILITIES_UPDATE], 0,
- contact, save_enhanced_caps,
+ contact->handle, save_enhanced_caps,
waiter->contact->per_channel_manager_caps);
salut_presence_cache_free_cache_entry (save_enhanced_caps);
}
@@ -593,10 +593,21 @@ salut_presence_cache_process_caps (SalutPresenceCache *self,
{
/* we already have enough trust for this node; apply the cached value to
* the contact */
- DEBUG ("enough trust for URI %s, setting caps for %s",
- uri, contact->name);
+ GHashTable *save_enhanced_caps;
+ DEBUG ("setting caps for %s (URI %s is in the cache)",
+ contact->name, uri);
+
+ salut_presence_cache_copy_cache_entry (&save_enhanced_caps,
+ contact->per_channel_manager_caps);
+
+ DEBUG ("setting caps for %s (thanks to %s)",
+ contact->name, contact->name);
salut_contact_set_capabilities (contact, info->per_channel_manager_caps);
+ g_signal_emit (self, signals[CAPABILITIES_UPDATE], 0,
+ contact->handle, save_enhanced_caps,
+ contact->per_channel_manager_caps);
+ salut_presence_cache_free_cache_entry (save_enhanced_caps);
}
else
{
--
1.5.6.5
More information about the telepathy-commits
mailing list