[empathy: 1/2] chat-manager: pass user action time of DBus to show the closed tab
- From: Jonny Lamb <jonnylamb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy: 1/2] chat-manager: pass user action time of DBus to show the closed tab
- Date: Wed, 18 May 2011 14:23:24 +0000 (UTC)
commit c51c43f90643a4a5080ec1412229f0eb56ca9a34
Author: Jonny Lamb <jonnylamb gnome org>
Date: Wed May 18 14:50:34 2011 +0100
chat-manager: pass user action time of DBus to show the closed tab
This was making undo closing tabs in the background, aww.
Signed-off-by: Jonny Lamb <jonnylamb gnome org>
extensions/Chat_Manager.xml | 5 +++++
src/empathy-chat-manager.c | 18 +++++++++++-------
src/empathy-chat-manager.h | 3 ++-
src/empathy-chat-window.c | 3 ++-
4 files changed, 20 insertions(+), 9 deletions(-)
---
diff --git a/extensions/Chat_Manager.xml b/extensions/Chat_Manager.xml
index 7a6fef8..15ea951 100644
--- a/extensions/Chat_Manager.xml
+++ b/extensions/Chat_Manager.xml
@@ -20,6 +20,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<interface name="org.gnome.Empathy.ChatManager">
<method name="UndoClosedChat" tp:name-for-bindings="Undo_Closed_Chat">
+ <arg direction="in" type="x" name="User_Time">
+ <tp:docstring>
+ The user action time for the event.
+ </tp:docstring>
+ </arg>
<tp:docstring>
Ask the chat manager to undo closing a tab. If there is no tab
to be opened then return successfully.
diff --git a/src/empathy-chat-manager.c b/src/empathy-chat-manager.c
index bf870c8..d8e5733 100644
--- a/src/empathy-chat-manager.c
+++ b/src/empathy-chat-manager.c
@@ -24,6 +24,8 @@
#include <libempathy/empathy-request-util.h>
#include <libempathy/empathy-utils.h>
+#include <libempathy-gtk/empathy-ui-utils.h>
+
#include "empathy-chat-window.h"
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
@@ -508,7 +510,8 @@ empathy_chat_manager_closed_chat (EmpathyChatManager *self,
}
void
-empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self)
+empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self,
+ gint64 timestamp)
{
EmpathyChatManagerPriv *priv = GET_PRIV (self);
ChatData *data;
@@ -522,11 +525,9 @@ empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self)
data->room ? "room" : "contact", data->id);
if (data->room)
- empathy_join_muc (data->account, data->id,
- TP_USER_ACTION_TIME_NOT_USER_ACTION);
+ empathy_join_muc (data->account, data->id, timestamp);
else
- empathy_chat_with_contact_id (data->account, data->id,
- TP_USER_ACTION_TIME_NOT_USER_ACTION);
+ empathy_chat_with_contact_id (data->account, data->id, timestamp);
g_signal_emit (self, signals[CLOSED_CHATS_CHANGED], 0,
g_queue_get_length (priv->closed_queue));
@@ -544,9 +545,11 @@ empathy_chat_manager_get_num_closed_chats (EmpathyChatManager *self)
static void
empathy_chat_manager_dbus_undo_closed_chat (EmpSvcChatManager *manager,
+ gint64 timestamp,
DBusGMethodInvocation *context)
{
- empathy_chat_manager_undo_closed_chat ((EmpathyChatManager *) manager);
+ empathy_chat_manager_undo_closed_chat ((EmpathyChatManager *) manager,
+ timestamp);
emp_svc_chat_manager_return_from_undo_closed_chat (context);
}
@@ -581,7 +584,8 @@ empathy_chat_manager_call_undo_closed_chat (void)
tp_proxy_add_interface_by_id (proxy, EMP_IFACE_QUARK_CHAT_MANAGER);
- emp_cli_chat_manager_call_undo_closed_chat (proxy, -1, NULL, NULL, NULL, NULL);
+ emp_cli_chat_manager_call_undo_closed_chat (proxy, -1, empathy_get_current_action_time (),
+ NULL, NULL, NULL, NULL);
g_object_unref (proxy);
g_object_unref (dbus_daemon);
diff --git a/src/empathy-chat-manager.h b/src/empathy-chat-manager.h
index 88632b4..7dfd534 100644
--- a/src/empathy-chat-manager.h
+++ b/src/empathy-chat-manager.h
@@ -62,7 +62,8 @@ EmpathyChatManager *empathy_chat_manager_dup_singleton (void);
void empathy_chat_manager_closed_chat (EmpathyChatManager *self,
EmpathyChat *chat);
-void empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self);
+void empathy_chat_manager_undo_closed_chat (EmpathyChatManager *self,
+ gint64 timestamp);
guint empathy_chat_manager_get_num_closed_chats (EmpathyChatManager *self);
void empathy_chat_manager_call_undo_closed_chat (void);
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index d8a75cb..e987bf7 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -1191,7 +1191,8 @@ chat_window_tabs_undo_close_tab_activate_cb (GtkAction *action,
EmpathyChatWindow *window)
{
EmpathyChatWindowPriv *priv = GET_PRIV (window);
- empathy_chat_manager_undo_closed_chat (priv->chat_manager);
+ empathy_chat_manager_undo_closed_chat (priv->chat_manager,
+ empathy_get_current_action_time ());
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]