EmpathyChat * empathy_chat_window_find_chat (McAccount *account, const gchar *id) { GList *l; g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); g_return_val_if_fail (!G_STR_EMPTY (id), NULL); for (l = chat_windows; l; l = l->next) { EmpathyChatWindowPriv *priv; EmpathyChatWindow *window; GList *ll; window = l->data; priv = GET_PRIV (window); for (ll = priv->chats; ll; ll = ll->next) { EmpathyChat *chat; chat = ll->data; if (empathy_account_equal (account, empathy_chat_get_account (chat)) && !tp_strdiff (id, empathy_chat_get_id (chat))) { return chat; } } } return NULL; }
static ChatData * chat_data_new (EmpathyChat *chat) { ChatData *data = NULL; data = g_slice_new0 (ChatData); data->account = g_object_ref (empathy_chat_get_account (chat)); data->id = g_strdup (empathy_chat_get_id (chat)); data->room = empathy_chat_is_room (chat); data->sms = empathy_chat_is_sms_channel (chat); return data; }
static const gchar * chat_get_window_id_for_geometry (EmpathyChat *chat) { const gchar *res = NULL; gboolean separate_windows; empathy_conf_get_bool (empathy_conf_get (), EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS, &separate_windows); if (separate_windows) { res = empathy_chat_get_id (chat); } return res ? res : "chat-window"; }