aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/Chat_Manager.xml5
-rw-r--r--src/empathy-chat-manager.c18
-rw-r--r--src/empathy-chat-manager.h3
-rw-r--r--src/empathy-chat-window.c3
4 files changed, 20 insertions, 9 deletions
diff --git a/extensions/Chat_Manager.xml b/extensions/Chat_Manager.xml
index 7a6fef8a3..15ea95122 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 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 e96be3831..6e7d5ac65 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -1176,7 +1176,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