From 921e862b7b56d76a1d11fcaa2edcd4d5aafab6c5 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 21 Nov 2008 16:23:46 +0000 Subject: Change state when the channel is invalidated only if an error occured. svn path=/trunk/; revision=1891 --- libempathy/empathy-tp-file.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'libempathy') diff --git a/libempathy/empathy-tp-file.c b/libempathy/empathy-tp-file.c index 3d2cedf79..38f54a386 100644 --- a/libempathy/empathy-tp-file.c +++ b/libempathy/empathy-tp-file.c @@ -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 -- cgit v1.2.3