diff options
author | Xavier Claessens <xclaesse@gmail.com> | 2009-09-21 03:53:14 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2009-09-21 03:53:14 +0800 |
commit | db0a8206853d58375960fabe1ae38267ba0576ec (patch) | |
tree | 49b35917bce6cc2e9fdf32219e2b932939532f47 | |
parent | 3f69fecb7d8405f7a9e3c8e7b34665e536b7de0c (diff) | |
parent | 1ca52da13f25b623adb55127aee61c6ea2f68bea (diff) | |
download | gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.tar gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.tar.gz gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.tar.bz2 gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.tar.lz gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.tar.xz gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.tar.zst gsoc2013-empathy-db0a8206853d58375960fabe1ae38267ba0576ec.zip |
Merge commit 'istaz/handle_none'
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 7 | ||||
-rw-r--r-- | libempathy/empathy-tp-chat.c | 11 | ||||
-rw-r--r-- | src/empathy.c | 11 |
3 files changed, 14 insertions, 15 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c index d62537110..3931115be 100644 --- a/libempathy-gtk/empathy-chat.c +++ b/libempathy-gtk/empathy-chat.c @@ -1325,20 +1325,19 @@ chat_remote_contact_changed_cb (EmpathyChat *chat) priv->remote_contact = NULL; } + g_free (priv->id); + + priv->id = g_strdup (empathy_tp_chat_get_id (priv->tp_chat)); priv->remote_contact = empathy_tp_chat_get_remote_contact (priv->tp_chat); if (priv->remote_contact != NULL) { g_object_ref (priv->remote_contact); priv->handle_type = TP_HANDLE_TYPE_CONTACT; - g_free (priv->id); - priv->id = g_strdup (empathy_contact_get_id (priv->remote_contact)); } else if (priv->tp_chat != NULL) { TpChannel *channel; channel = empathy_tp_chat_get_channel (priv->tp_chat); g_object_get (channel, "handle-type", &priv->handle_type, NULL); - g_free (priv->id); - priv->id = g_strdup (empathy_tp_chat_get_id (priv->tp_chat)); } chat_update_contacts_visibility (chat); diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c index a8b0eeb6f..28b97076d 100644 --- a/libempathy/empathy-tp-chat.c +++ b/libempathy/empathy-tp-chat.c @@ -1251,10 +1251,19 @@ const gchar * empathy_tp_chat_get_id (EmpathyTpChat *chat) { EmpathyTpChatPriv *priv = GET_PRIV (chat); + const gchar *id; + g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), NULL); - return tp_channel_get_identifier (priv->channel); + id = tp_channel_get_identifier (priv->channel); + if (!EMP_STR_EMPTY (id)) + return id; + else if (priv->remote_contact) + return empathy_contact_get_id (priv->remote_contact); + else + return NULL; + } EmpathyContact * diff --git a/src/empathy.c b/src/empathy.c index fe9caf6c6..1d478c357 100644 --- a/src/empathy.c +++ b/src/empathy.c @@ -100,16 +100,7 @@ dispatch_cb (EmpathyDispatcher *dispatcher, (empathy_dispatch_operation_get_channel_wrapper (operation)); id = empathy_tp_chat_get_id (tp_chat); - if (!id) - { - EmpathyContact *contact; - - contact = empathy_tp_chat_get_remote_contact (tp_chat); - if (contact) - id = empathy_contact_get_id (contact); - } - - if (id) + if (!EMP_STR_EMPTY (id)) { EmpathyAccountManager *manager; TpConnection *connection; |