empathy r2195 - trunk/src



Author: xclaesse
Date: Fri Jan  9 16:15:49 2009
New Revision: 2195
URL: http://svn.gnome.org/viewvc/empathy?rev=2195&view=rev

Log:
Remove approvals when the underlying operation got invalidated

Signed-off-by: Sjoerd Simons <sjoerd simons collabora co uk>

Modified:
   trunk/src/empathy-event-manager.c

Modified: trunk/src/empathy-event-manager.c
==============================================================================
--- trunk/src/empathy-event-manager.c	(original)
+++ trunk/src/empathy-event-manager.c	Fri Jan  9 16:15:49 2009
@@ -52,6 +52,7 @@
   EmpathyDispatchOperation *operation;
   gulong approved_handler;
   gulong claimed_handler;
+  gulong invalidated_handler;
   /* Remove contact if applicable */
   EmpathyContact *contact;
   /* Tube dispatcher if applicable */
@@ -109,6 +110,8 @@
     approval->approved_handler);
   g_signal_handler_disconnect (approval->operation,
     approval->claimed_handler);
+  g_signal_handler_disconnect (approval->operation,
+    approval->invalidated_handler);
   g_object_unref (approval->operation);
 
   if (approval->contact != NULL)
@@ -237,6 +240,14 @@
 }
 
 static void
+event_manager_operation_invalidated_cb (EmpathyDispatchOperation *operation,
+  guint domain, gint code, gchar *message,
+  EventManagerApproval *approval)
+{
+  event_manager_approval_done (approval);
+}
+
+static void
 event_manager_media_channel_got_name_cb (EmpathyContact *contact,
   const GError *error, gpointer user_data, GObject *object)
 {
@@ -388,6 +399,9 @@
   approval->claimed_handler = g_signal_connect (operation, "claimed",
      G_CALLBACK (event_manager_operation_claimed_cb), approval);
 
+  approval->invalidated_handler = g_signal_connect (operation, "invalidated",
+     G_CALLBACK (event_manager_operation_invalidated_cb), approval);
+
   if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_TEXT))
     {
       EmpathyTpChat *tp_chat =



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