diff options
author | xclaesse <xclaesse@4ee84921-47dd-4033-b63a-18d7a039a3e4> | 2008-11-22 00:23:46 +0800 |
---|---|---|
committer | xclaesse <xclaesse@4ee84921-47dd-4033-b63a-18d7a039a3e4> | 2008-11-22 00:23:46 +0800 |
commit | 756f3a1cc8a013083814ac314031100d2cfe1ec2 (patch) | |
tree | 13225f0bb686f19acdcb4e9a8b15d76ed7714c3c /libempathy/empathy-tp-file.c | |
parent | e7dfda76f1ba6cdd215dc95e8d23e2925a2d4e67 (diff) | |
download | gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.tar gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.tar.gz gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.tar.bz2 gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.tar.lz gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.tar.xz gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.tar.zst gsoc2013-empathy-756f3a1cc8a013083814ac314031100d2cfe1ec2.zip |
Change state when the channel is invalidated only if an error occured.
git-svn-id: svn+ssh://svn.gnome.org/svn/empathy/trunk@1891 4ee84921-47dd-4033-b63a-18d7a039a3e4
Diffstat (limited to 'libempathy/empathy-tp-file.c')
-rw-r--r-- | libempathy/empathy-tp-file.c | 16 |
1 files changed, 11 insertions, 5 deletions
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 |