]> git.0d.be Git - empathy.git/commitdiff
Change state when the channel is invalidated only if an error occured.
authorXavier Claessens <xclaesse@src.gnome.org>
Fri, 21 Nov 2008 16:23:46 +0000 (16:23 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 21 Nov 2008 16:23:46 +0000 (16:23 +0000)
svn path=/trunk/; revision=1891

libempathy/empathy-tp-file.c

index 3d2cedf796184c52d6188cbda46c8d074b5b2233..38f54a386fa358f28ee276bff1c19f602bb419b0 100644 (file)
@@ -332,11 +332,17 @@ tp_file_invalidated_cb (TpProxy       *proxy,
                        gchar         *message,
                        EmpathyTpFile *tp_file)
 {
-       DEBUG ("Channel invalidated: %s", message);
-       tp_file->priv->state = EMP_FILE_TRANSFER_STATE_CANCELLED;
-       tp_file->priv->state_change_reason =
-           EMP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_ERROR;
-       g_object_notify (G_OBJECT (tp_file), "state");
+  DEBUG ("Channel invalidated: %s", message);
+
+  if (tp_file->priv->state != EMP_FILE_TRANSFER_STATE_COMPLETED &&
+      tp_file->priv->state != EMP_FILE_TRANSFER_STATE_CANCELLED)
+    {
+      /* The channel is not in a finished state, an error occured */
+      tp_file->priv->state = EMP_FILE_TRANSFER_STATE_CANCELLED;
+      tp_file->priv->state_change_reason =
+          EMP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_ERROR;
+      g_object_notify (G_OBJECT (tp_file), "state");
+    }
 }
 
 static void