empathy r966 - in trunk: libempathy libempathy-gtk



Author: xclaesse
Date: Sat Apr 19 18:36:19 2008
New Revision: 966
URL: http://svn.gnome.org/viewvc/empathy?rev=966&view=rev

Log:
Fix acknoledge of messages


Modified:
   trunk/libempathy-gtk/empathy-chat.c
   trunk/libempathy/empathy-tp-chat.c
   trunk/libempathy/empathy-tp-chat.h

Modified: trunk/libempathy-gtk/empathy-chat.c
==============================================================================
--- trunk/libempathy-gtk/empathy-chat.c	(original)
+++ trunk/libempathy-gtk/empathy-chat.c	Sat Apr 19 18:36:19 2008
@@ -1644,21 +1644,16 @@
 empathy_chat_set_tp_chat (EmpathyChat   *chat,
 			  EmpathyTpChat *tp_chat)
 {
-	EmpathyChatPriv *priv;
+	EmpathyChatPriv *priv = GET_PRIV (chat);
 
 	g_return_if_fail (EMPATHY_IS_CHAT (chat));
 	g_return_if_fail (EMPATHY_IS_TP_CHAT (tp_chat));
 	g_return_if_fail (empathy_tp_chat_is_ready (tp_chat));
 
-	priv = GET_PRIV (chat);
-
-	if (tp_chat == priv->tp_chat) {
+	if (priv->tp_chat) {
 		return;
 	}
 
-	if (priv->tp_chat) {
-		g_object_unref (priv->tp_chat);
-	}
 	if (priv->account) {
 		g_object_unref (priv->account);
 	}
@@ -1699,6 +1694,9 @@
 		}
 	}
 
+	empathy_tp_chat_set_acknowledge (priv->tp_chat, TRUE);
+	empathy_tp_chat_emit_pendings (priv->tp_chat);
+
 	g_object_notify (G_OBJECT (chat), "tp-chat");
 	g_object_notify (G_OBJECT (chat), "id");
 	g_object_notify (G_OBJECT (chat), "account");

Modified: trunk/libempathy/empathy-tp-chat.c
==============================================================================
--- trunk/libempathy/empathy-tp-chat.c	(original)
+++ trunk/libempathy/empathy-tp-chat.c	Sat Apr 19 18:36:19 2008
@@ -796,7 +796,7 @@
 	}
 
 	tp_cli_channel_type_text_call_list_pending_messages (priv->channel, -1,
-							     priv->acknowledge,
+							     FALSE,
 							     tp_chat_list_pending_messages_cb,
 							     NULL, NULL,
 							     G_OBJECT (chat));
@@ -1075,48 +1075,6 @@
 			     NULL);
 }
 
-void
-empathy_tp_chat_send (EmpathyTpChat *chat,
-		      EmpathyMessage *message)
-{
-	EmpathyTpChatPriv  *priv = GET_PRIV (chat);
-	const gchar        *message_body;
-	EmpathyMessageType  message_type;
-
-	g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
-	g_return_if_fail (EMPATHY_IS_MESSAGE (message));
-	g_return_if_fail (priv->ready);
-
-	message_body = empathy_message_get_body (message);
-	message_type = empathy_message_get_type (message);
-
-	empathy_debug (DEBUG_DOMAIN, "Sending message: %s", message_body);
-	tp_cli_channel_type_text_call_send (priv->channel, -1,
-					    message_type,
-					    message_body,
-					    tp_chat_async_cb,
-					    "sending message", NULL,
-					    G_OBJECT (chat));
-}
-
-void
-empathy_tp_chat_set_state (EmpathyTpChat      *chat,
-			   TpChannelChatState  state)
-{
-	EmpathyTpChatPriv *priv = GET_PRIV (chat);
-
-	g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
-	g_return_if_fail (priv->ready);
-
-	empathy_debug (DEBUG_DOMAIN, "Set state: %d", state);
-	tp_cli_channel_interface_chat_state_call_set_chat_state (priv->channel, -1,
-								 state,
-								 tp_chat_async_cb,
-								 "setting chat state",
-								 NULL,
-								 G_OBJECT (chat));
-}
-
 const gchar *
 empathy_tp_chat_get_id (EmpathyTpChat *chat)
 {
@@ -1138,6 +1096,16 @@
 	return priv->remote_contact;
 }
 
+McAccount *
+empathy_tp_chat_get_account (EmpathyTpChat *chat)
+{
+	EmpathyTpChatPriv *priv = GET_PRIV (chat);
+
+	g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), FALSE);
+
+	return priv->account;
+}
+
 gboolean
 empathy_tp_chat_is_ready (EmpathyTpChat *chat)
 {
@@ -1158,13 +1126,72 @@
 	return priv->members_count;
 }
 
-McAccount *
-empathy_tp_chat_get_account (EmpathyTpChat *chat)
+void
+empathy_tp_chat_set_acknowledge (EmpathyTpChat *chat,
+				  gboolean      acknowledge)
 {
 	EmpathyTpChatPriv *priv = GET_PRIV (chat);
 
-	g_return_val_if_fail (EMPATHY_IS_TP_CHAT (chat), FALSE);
+	g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
 
-	return priv->account;
+	priv->acknowledge = acknowledge;
+	g_object_notify (G_OBJECT (chat), "acknowledge");
+}
+
+void
+empathy_tp_chat_emit_pendings (EmpathyTpChat *chat)
+{
+	EmpathyTpChatPriv  *priv = GET_PRIV (chat);
+
+	g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
+	g_return_if_fail (priv->ready);
+
+	tp_cli_channel_type_text_call_list_pending_messages (priv->channel, -1,
+							     FALSE,
+							     tp_chat_list_pending_messages_cb,
+							     NULL, NULL,
+							     G_OBJECT (chat));
+}
+
+void
+empathy_tp_chat_send (EmpathyTpChat *chat,
+		      EmpathyMessage *message)
+{
+	EmpathyTpChatPriv  *priv = GET_PRIV (chat);
+	const gchar        *message_body;
+	EmpathyMessageType  message_type;
+
+	g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
+	g_return_if_fail (EMPATHY_IS_MESSAGE (message));
+	g_return_if_fail (priv->ready);
+
+	message_body = empathy_message_get_body (message);
+	message_type = empathy_message_get_type (message);
+
+	empathy_debug (DEBUG_DOMAIN, "Sending message: %s", message_body);
+	tp_cli_channel_type_text_call_send (priv->channel, -1,
+					    message_type,
+					    message_body,
+					    tp_chat_async_cb,
+					    "sending message", NULL,
+					    G_OBJECT (chat));
+}
+
+void
+empathy_tp_chat_set_state (EmpathyTpChat      *chat,
+			   TpChannelChatState  state)
+{
+	EmpathyTpChatPriv *priv = GET_PRIV (chat);
+
+	g_return_if_fail (EMPATHY_IS_TP_CHAT (chat));
+	g_return_if_fail (priv->ready);
+
+	empathy_debug (DEBUG_DOMAIN, "Set state: %d", state);
+	tp_cli_channel_interface_chat_state_call_set_chat_state (priv->channel, -1,
+								 state,
+								 tp_chat_async_cb,
+								 "setting chat state",
+								 NULL,
+								 G_OBJECT (chat));
 }
 

Modified: trunk/libempathy/empathy-tp-chat.h
==============================================================================
--- trunk/libempathy/empathy-tp-chat.h	(original)
+++ trunk/libempathy/empathy-tp-chat.h	Sat Apr 19 18:36:19 2008
@@ -60,6 +60,9 @@
 McAccount *    empathy_tp_chat_get_account          (EmpathyTpChat      *chat);
 gboolean       empathy_tp_chat_is_ready             (EmpathyTpChat      *chat);
 guint          empathy_tp_chat_get_members_count    (EmpathyTpChat      *chat);
+void           empathy_tp_chat_set_acknowledge      (EmpathyTpChat      *chat,
+						     gboolean            acknowledge);
+void           empathy_tp_chat_emit_pendings        (EmpathyTpChat      *chat);
 void           empathy_tp_chat_send                 (EmpathyTpChat      *chat,
 						     EmpathyMessage     *message);
 void           empathy_tp_chat_set_state            (EmpathyTpChat      *chat,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]