diff options
Diffstat (limited to 'mail/em-utils.c')
-rw-r--r-- | mail/em-utils.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mail/em-utils.c b/mail/em-utils.c index 0eab5f6fac..4f264955bd 100644 --- a/mail/em-utils.c +++ b/mail/em-utils.c @@ -1665,9 +1665,10 @@ try_open_e_book (EBook *book, gboolean only_if_exists, GError **error) if (canceled) { g_clear_error (error); g_set_error (error, E_BOOK_ERROR, E_BOOK_ERROR_CANCELLED, "Operation has been canceled."); - e_book_cancel_async_op (book, NULL); - /* it had been canceled, the above callback may not be called, thus setting flag here */ - e_flag_set (flag); + /* if the operation is cancelled sucessfully set the flag else wait. file, groupwise,.. backend's operations + are not cancellable */ + if (e_book_cancel_async_op (book, NULL)) + e_flag_set (flag); } e_flag_wait (flag); |