diff options
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-dispatcher.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libempathy/empathy-dispatcher.c b/libempathy/empathy-dispatcher.c index 441da69db..ffc677abe 100644 --- a/libempathy/empathy-dispatcher.c +++ b/libempathy/empathy-dispatcher.c @@ -90,6 +90,8 @@ typedef struct { guint handle_type; guint handle; EmpathyContact *contact; + /* Properties to pass to the channel when requesting it */ + GHashTable *properties; EmpathyDispatcherRequestCb *cb; gpointer user_data; gpointer *request_data; @@ -136,8 +138,8 @@ free_dispatch_data (DispatchData *data) static DispatcherRequestData * new_dispatcher_request_data (EmpathyDispatcher *dispatcher, TpConnection *connection, const gchar *channel_type, guint handle_type, - guint handle, EmpathyContact *contact, - EmpathyDispatcherRequestCb *cb, gpointer user_data) + guint handle, GHashTable *properties, + EmpathyContact *contact, EmpathyDispatcherRequestCb *cb, gpointer user_data) { DispatcherRequestData *result = g_slice_new0 (DispatcherRequestData); @@ -165,6 +167,9 @@ free_dispatcher_request_data (DispatcherRequestData *r) if (r->contact != NULL) g_object_unref (r->contact); + if (r->properties != NULL) + g_hash_table_unref (r->properties); + g_slice_free (DispatcherRequestData, r); } @@ -1435,8 +1440,8 @@ empathy_dispatcher_chat_with_contact (EmpathyContact *contact, /* The contact handle might not be known yet */ request_data = new_dispatcher_request_data (dispatcher, connection, - TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_CONTACT, 0, contact, callback, - user_data); + TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_CONTACT, 0, NULL, + contact, callback, user_data); connection_data->outstanding_requests = g_list_prepend (connection_data->outstanding_requests, request_data); |