aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonny Lamb <jonnylamb@gnome.org>2011-05-18 21:50:34 +0800
committerJonny Lamb <jonnylamb@gnome.org>2011-05-18 22:15:10 +0800
commitc51c43f90643a4a5080ec1412229f0eb56ca9a34 (patch)
tree1c11fdcb6dfdfedc70c458553810cf6f206daf97 /src
parent9999bf6834a4c2e592a39dcbc9b8dffc5bee9bd5 (diff)
downloadgsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.tar
gsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.tar.gz
gsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.tar.bz2
gsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.tar.lz
gsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.tar.xz
gsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.tar.zst
gsoc2013-empathy-c51c43f90643a4a5080ec1412229f0eb56ca9a34.zip
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>
Diffstat (limited to 'src')
-rw-r--r--src/empathy-chat-manager.c18
-rw-r--r--src/empathy-chat-manager.h3
-rw-r--r--src/empathy-chat-window.c3
3 files changed, 15 insertions, 9 deletions
diff --git a/src/empathy-chat-manager.c b/src/empathy-chat-manager.c
index bf870c8cc..d8e573320 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 88632b4dd..7dfd53480 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 d8a75cb0c..e987bf7da 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