Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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";
}