diff options
-rw-r--r-- | libempathy/empathy-chatroom-manager.c | 8 | ||||
-rw-r--r-- | src/empathy-chat-manager.c | 9 | ||||
-rw-r--r-- | src/empathy-event-manager.c | 8 |
3 files changed, 25 insertions, 0 deletions
diff --git a/libempathy/empathy-chatroom-manager.c b/libempathy/empathy-chatroom-manager.c index 7872bbb19..53786343b 100644 --- a/libempathy/empathy-chatroom-manager.c +++ b/libempathy/empathy-chatroom-manager.c @@ -37,6 +37,7 @@ #include "empathy-tp-chat.h" #include "empathy-chatroom-manager.h" +#include "empathy-channel-factory.h" #include "empathy-utils.h" #define DEBUG_FLAG EMPATHY_DEBUG_OTHER @@ -538,6 +539,7 @@ empathy_chatroom_manager_constructor (GType type, EmpathyChatroomManagerPriv *priv; GError *error = NULL; TpDBusDaemon *dbus; + EmpathyChannelFactory *factory; if (chatroom_manager_singleton != NULL) return g_object_ref (chatroom_manager_singleton); @@ -597,6 +599,11 @@ empathy_chatroom_manager_constructor (GType type, tp_base_client_add_connection_features_varargs (priv->observer, TP_CONNECTION_FEATURE_CAPABILITIES, NULL); + factory = empathy_channel_factory_dup (); + + tp_base_client_set_channel_factory (priv->observer, + TP_CLIENT_CHANNEL_FACTORY (factory)); + if (!tp_base_client_register (priv->observer, &error)) { g_critical ("Failed to register Observer: %s", error->message); @@ -604,6 +611,7 @@ empathy_chatroom_manager_constructor (GType type, g_error_free (error); } + g_object_unref (factory); return obj; } diff --git a/src/empathy-chat-manager.c b/src/empathy-chat-manager.c index d8e573320..8bdc97e90 100644 --- a/src/empathy-chat-manager.c +++ b/src/empathy-chat-manager.c @@ -20,6 +20,7 @@ #include <telepathy-glib/telepathy-glib.h> #include <telepathy-glib/proxy-subclass.h> +#include <libempathy/empathy-channel-factory.h> #include <libempathy/empathy-chatroom-manager.h> #include <libempathy/empathy-request-util.h> #include <libempathy/empathy-utils.h> @@ -303,6 +304,7 @@ empathy_chat_manager_init (EmpathyChatManager *self) EmpathyChatManagerPriv *priv = GET_PRIV (self); TpDBusDaemon *dbus; GError *error = NULL; + EmpathyChannelFactory *factory; priv->closed_queue = g_queue_new (); priv->messages = g_hash_table_new_full (g_str_hash, g_str_equal, @@ -345,11 +347,18 @@ empathy_chat_manager_init (EmpathyChatManager *self) TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_NONE, NULL)); + factory = empathy_channel_factory_dup (); + + tp_base_client_set_channel_factory (priv->handler, + TP_CLIENT_CHANNEL_FACTORY (factory)); + if (!tp_base_client_register (priv->handler, &error)) { g_critical ("Failed to register text handler: %s", error->message); g_error_free (error); } + + g_object_unref (factory); } static void diff --git a/src/empathy-event-manager.c b/src/empathy-event-manager.c index f75fbc54b..770b22b43 100644 --- a/src/empathy-event-manager.c +++ b/src/empathy-event-manager.c @@ -29,6 +29,7 @@ #include <telepathy-glib/interfaces.h> #include <telepathy-glib/simple-approver.h> +#include <libempathy/empathy-channel-factory.h> #include <libempathy/empathy-presence-manager.h> #include <libempathy/empathy-tp-contact-factory.h> #include <libempathy/empathy-contact-manager.h> @@ -1249,6 +1250,7 @@ empathy_event_manager_init (EmpathyEventManager *manager) EMPATHY_TYPE_EVENT_MANAGER, EmpathyEventManagerPriv); TpDBusDaemon *dbus; GError *error = NULL; + EmpathyChannelFactory *factory; manager->priv = priv; @@ -1332,6 +1334,11 @@ empathy_event_manager_init (EmpathyEventManager *manager) TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION, NULL)); + factory = empathy_channel_factory_dup (); + + tp_base_client_set_channel_factory (priv->approver, + TP_CLIENT_CHANNEL_FACTORY (factory)); + if (!tp_base_client_register (priv->approver, &error)) { DEBUG ("Failed to register Approver: %s", error->message); @@ -1344,6 +1351,7 @@ empathy_event_manager_init (EmpathyEventManager *manager) g_error_free (error); } + g_object_unref (factory); g_object_unref (dbus); } |