[empathy] Add the filters not in the Client file to a second Handler
- From: Sjoerd Simons <sjoerds src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy] Add the filters not in the Client file to a second Handler
- Date: Sun, 30 Aug 2009 16:29:05 +0000 (UTC)
commit 43c0f0769a5117d7acdc07f22d4c73a2f06de0fe
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date: Sat Aug 29 17:13:04 2009 +0100
Add the filters not in the Client file to a second Handler
A Dispatcher isn't guaranteed to ask the Handlers D-Bus interface for the
filter after launching it. So have our main handler match what is defined in
the client file and add an extra head which contains the complete list
src/empathy.c | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/src/empathy.c b/src/empathy.c
index f7017bd..3d4b385 100644
--- a/src/empathy.c
+++ b/src/empathy.c
@@ -585,14 +585,28 @@ setup_dispatcher (void)
{ TP_IFACE_CHANNEL_TYPE_ROOM_LIST, TP_HANDLE_TYPE_NONE },
};
GStrv capabilities = { NULL };
+ GHashTable *asv;
int i;
+ /* Setup the basic Client.Handler that matches our client filter */
filters = g_ptr_array_new ();
+ asv = tp_asv_new (
+ TP_IFACE_CHANNEL ".ChannelType", G_TYPE_STRING,
+ TP_IFACE_CHANNEL_TYPE_TEXT,
+ TP_IFACE_CHANNEL ".TargetHandleType", G_TYPE_INT,
+ TP_HANDLE_TYPE_CONTACT,
+ NULL);
+ g_ptr_array_add (filters, asv);
+
+ d = empathy_dispatcher_new (PACKAGE_NAME, filters, NULL);
+ g_ptr_array_foreach (filters, (GFunc) g_hash_table_destroy, NULL);
+ g_ptr_array_free (filters, TRUE);
+
+ /* Setup the an extended Client.Handler that matches everything we can do */
+ filters = g_ptr_array_new ();
for (i = 0 ; i < G_N_ELEMENTS (types); i++)
{
- GHashTable *asv;
-
asv = tp_asv_new (
TP_IFACE_CHANNEL ".ChannelType", G_TYPE_STRING, types[i].channeltype,
TP_IFACE_CHANNEL ".TargetHandleType", G_TYPE_INT, types[i].handletype,
@@ -601,7 +615,8 @@ setup_dispatcher (void)
g_ptr_array_add (filters, asv);
}
- d = empathy_dispatcher_new (PACKAGE_NAME, filters, capabilities);
+ empathy_dispatcher_add_handler (d, PACKAGE_NAME"MoreThenMeetsTheEye",
+ filters, capabilities);
g_ptr_array_foreach (filters, (GFunc) g_hash_table_destroy, NULL);
g_ptr_array_free (filters, TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]