aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/itip-formatter/itip-formatter.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index 46b7abb3a3..82bc373de7 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -803,8 +803,9 @@ get_object_without_rid_ready_cb (GObject *source_object, GAsyncResult *result, g
icalcomp = NULL;
if (g_error_matches (error, E_CLIENT_ERROR, E_CLIENT_ERROR_CANCELLED) ||
- g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
- g_error_free (error);
+ g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) ||
+ g_cancellable_is_cancelled (fd->cancellable)) {
+ g_clear_error (&error);
find_cal_update_ui (fd, cal_client);
decrease_find_data (fd);
return;
@@ -843,7 +844,8 @@ get_object_with_rid_ready_cb (GObject *source_object, GAsyncResult *result, gpoi
icalcomp = NULL;
if (g_error_matches (error, E_CLIENT_ERROR, E_CLIENT_ERROR_CANCELLED) ||
- g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+ g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) ||
+ g_cancellable_is_cancelled (fd->cancellable)) {
g_error_free (error);
find_cal_update_ui (fd, cal_client);
decrease_find_data (fd);
@@ -887,6 +889,12 @@ get_object_list_ready_cb (GObject *source_object, GAsyncResult *result, gpointer
if (!e_cal_client_get_object_list_finish (cal_client, result, &objects, &error))
objects = NULL;
+ if (g_cancellable_is_cancelled (fd->cancellable)) {
+ g_clear_error (&error);
+ decrease_find_data (fd);
+ return;
+ }
+
if (error) {
if (g_error_matches (error, E_CLIENT_ERROR, E_CLIENT_ERROR_CANCELLED) ||
g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
@@ -926,6 +934,12 @@ find_cal_opened_cb (GObject *source_object, GAsyncResult *result, gpointer user_
}
}
+ if (g_cancellable_is_cancelled (fd->cancellable)) {
+ g_clear_error (&error);
+ decrease_find_data (fd);
+ return;
+ }
+
if (error) {
/* FIXME Do we really want to warn here? If we fail
* to find the item, this won't be cleared but the