Hello community,

here is the log from the commit of package evolution for openSUSE:Factory 
checked in at 2014-12-17 19:19:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution (Old)
 and      /work/SRC/openSUSE:Factory/.evolution.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution"

Changes:
--------
--- /work/SRC/openSUSE:Factory/evolution/evolution.changes      2014-11-18 
22:47:05.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.evolution.new/evolution.changes 2014-12-17 
19:18:39.000000000 +0100
@@ -1,0 +2,29 @@
+Sun Dec 14 05:19:59 UTC 2014 - badshah...@gmail.com
+
+- Update to version 3.12.9:
+  + Offer only enabled accounts as meeting organizers.
+  + Odd cross line when drawing an ECalendar with multiple
+    columns
+  + mail_regen_list: Fix a memory leak.
+  + Use EClientCache to open calendars in plugins.
+  + [Alarm-notify] Do not show "Not supported" error on an alarm
+    dismiss.
+  + Automatic Contacts can duplicate recipients in the set book.
+  + EWebView - Increase minimum zoom level for zoom out.
+  + Calendar events/tasks/memos not removed from UI on the source
+    removal.
+  + Bugs fixed: bgo#739708, bgo#700778, bgo#736947, bgo#736950
+    bgo#740197, bgo#740577, bgo#734646, bgo#740244, bgo#734530
+    bgo#524365, bgo#706993.
+  + Updated translations.
+- Add post-release patches from upstream:
+  + evolution-no-DTEND-set.patch: Fix calendar issues when DTEND
+    is not set
+  + evolution-protected-login-PIN.patch: Prompts for login PIN
+    with CKF_PROTECTED_AUTHENTICATION_PATH (bgo#741059)
+  + evolution-crash-sending-simultaneous-emails.patch: [SMTP] Fix
+    crash when sending two messages at once (bgo#740297)
+  + evolution-wrong-message-preview.patch: Message preview shows
+    a wrong message (bgo#724039).
+
+-------------------------------------------------------------------

Old:
----
  evolution-3.12.8.tar.xz

New:
----
  evolution-3.12.9.tar.xz
  evolution-crash-sending-simultaneous-emails.patch
  evolution-no-DTEND-set.patch
  evolution-protected-login-PIN.patch
  evolution-wrong-message-preview.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ evolution.spec ++++++
--- /var/tmp/diff_new_pack.8RDGRw/_old  2014-12-17 19:18:40.000000000 +0100
+++ /var/tmp/diff_new_pack.8RDGRw/_new  2014-12-17 19:18:40.000000000 +0100
@@ -24,7 +24,7 @@
 Name:           evolution
 # This should be updated upon major version changes; it should match 
BASE_VERSION as defined in configure.in.
 %define evolution_base_version 3.12
-Version:        3.12.8
+Version:        3.12.9
 Release:        0
 # _version needs to be %{version} stripped to major.minor.micro only...
 %define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
@@ -38,6 +38,14 @@
 Source0:        
http://download.gnome.org/sources/evolution/3.12/%{name}-%{version}.tar.xz
 # PATCH-NEEDS-REBASE evolution-migrate-kmail-kcontact.patch fate#316619 
dli...@suse.com -- Migrate Kmail/Kcontact into evolution 
(WAS:PATCH-FEATURE-OPENSUSE)
 Patch0:         evolution-migrate-kmail-kcontact.patch
+# PATCH-FIX-UPSTREAM evolution-no-DTEND-set.patch badshah...@gmail.com -- Fix 
calendar issues when DTEND is not set; patch taken from upstream git
+Patch1:         evolution-no-DTEND-set.patch
+# PATCH-FIX-UPSTREAM evolution-protected-login-PIN.patch bgo#741059 
badshah...@gmail.com -- Prompts for login PIN with 
CKF_PROTECTED_AUTHENTICATION_PATH; patch taken from upstream git
+Patch2:         evolution-protected-login-PIN.patch
+# PATCH-FIX-UPSTREAM evolution-crash-sending-simultaneous-emails.patch 
bgo#740297 badshah...@gmail.com -- [SMTP] Fix crash when sending two messages 
at once; patch taken from upstream git
+Patch3:         evolution-crash-sending-simultaneous-emails.patch
+# PATCH-FIX-UPSTREAM evolution-wrong-message-preview.patch bgo#724039 
badshah...@gmail.com -- Message preview shows a wrong message; patch taken from 
upstream git
+Patch4:         evolution-wrong-message-preview.patch
 # The icon we rely on is from adwaita-icon-theme
 BuildRequires:  adwaita-icon-theme
 BuildRequires:  bison
@@ -135,6 +143,10 @@
 translation-update-upstream
 # NEEDS REBASE
 #patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
 %if %{need_autogen}

++++++ evolution-3.12.8.tar.xz -> evolution-3.12.9.tar.xz ++++++
/work/SRC/openSUSE:Factory/evolution/evolution-3.12.8.tar.xz 
/work/SRC/openSUSE:Factory/.evolution.new/evolution-3.12.9.tar.xz differ: char 
26, line 1

++++++ evolution-crash-sending-simultaneous-emails.patch ++++++
>From f2a6072d31c1782540e26429a22523437cdb288b Mon Sep 17 00:00:00 2001
From: Milan Crha <mc...@redhat.com>
Date: Wed, 10 Dec 2014 10:26:38 +0100
Subject: Bug 740297 - [SMTP] Crash when sending two messages at once


diff --git a/libemail-engine/e-mail-session-utils.c 
b/libemail-engine/e-mail-session-utils.c
index a248eac..295fe24 100644
--- a/libemail-engine/e-mail-session-utils.c
+++ b/libemail-engine/e-mail-session-utils.c
@@ -540,14 +540,20 @@ mail_session_send_to_thread (GSimpleAsyncResult *simple,
                return;
        }
 
+       if (!e_mail_session_mark_service_used_sync (session, 
context->transport, cancellable)) {
+               g_warn_if_fail (g_cancellable_set_error_if_cancelled 
(cancellable, &error));
+               g_simple_async_result_take_error (simple, error);
+               return;
+       }
+
        status = camel_service_get_connection_status (context->transport);
        if (status != CAMEL_SERVICE_CONNECTED) {
                did_connect = TRUE;
 
-               camel_service_connect_sync (
-                       context->transport, cancellable, &error);
+               camel_service_connect_sync (context->transport, cancellable, 
&error);
 
                if (error != NULL) {
+                       e_mail_session_unmark_service_used (session, 
context->transport);
                        g_simple_async_result_take_error (simple, error);
                        return;
                }
@@ -579,6 +585,8 @@ mail_session_send_to_thread (GSimpleAsyncResult *simple,
                }
        }
 
+       e_mail_session_unmark_service_used (session, context->transport);
+
        if (error != NULL) {
                g_simple_async_result_take_error (simple, error);
                return;
diff --git a/libemail-engine/e-mail-session.c b/libemail-engine/e-mail-session.c
index 5578a78..f54025e 100644
--- a/libemail-engine/e-mail-session.c
+++ b/libemail-engine/e-mail-session.c
@@ -91,6 +91,10 @@ struct _EMailSessionPrivate {
 
        guint preparing_flush;
        GMutex preparing_flush_lock;
+
+       GMutex used_services_lock;
+       GCond used_services_cond;
+       GHashTable *used_services;
 };
 
 struct _AsyncContext {
@@ -956,11 +960,14 @@ mail_session_finalize (GObject *object)
 
        g_hash_table_destroy (priv->auto_refresh_table);
        g_hash_table_destroy (priv->junk_filters);
+       g_hash_table_destroy (priv->used_services);
 
        g_ptr_array_free (priv->local_folders, TRUE);
        g_ptr_array_free (priv->local_folder_uris, TRUE);
 
        g_mutex_clear (&priv->preparing_flush_lock);
+       g_mutex_clear (&priv->used_services_lock);
+       g_cond_clear (&priv->used_services_cond);
 
        g_free (mail_data_dir);
        g_free (mail_config_dir);
@@ -1799,6 +1806,10 @@ e_mail_session_init (EMailSession *session)
                (GDestroyNotify) g_free);
 
        g_mutex_init (&session->priv->preparing_flush_lock);
+       g_mutex_init (&session->priv->used_services_lock);
+       g_cond_init (&session->priv->used_services_cond);
+
+       session->priv->used_services = g_hash_table_new (g_direct_hash, 
g_direct_equal);
 }
 
 EMailSession *
@@ -2367,3 +2378,86 @@ e_mail_session_create_vfolder_context (EMailSession 
*session)
        return class->create_vfolder_context (session);
 }
 
+static void
+mail_session_wakeup_used_services_cond (GCancellable *cancenllable,
+                                         EMailSession *session)
+{
+       g_return_if_fail (E_IS_MAIL_SESSION (session));
+
+       /* Use broadcast here, because it's not known which operation had been
+          cancelled, thus rather wake up all of them to retest. */
+       g_cond_broadcast (&session->priv->used_services_cond);
+}
+
+/**
+ * e_mail_session_mark_service_used_sync:
+ * @session: an #EMailSession
+ * @service: a #CamelService
+ * @cancellable: (allow none): a #GCancellable, or NULL
+ *
+ * Marks the @service as being used. If it is already in use, then waits
+ * for its release. The only reasons for a failure are either invalid
+ * parameters being passed in the function or the wait being cancelled.
+ * Use e_mail_session_unmark_service_used() to notice the @session that
+ * that the @service is no longer being used by the caller.
+ *
+ * Returns: Whether successfully waited for the @service.
+ *
+ * Since: 3.12.10
+ **/
+gboolean
+e_mail_session_mark_service_used_sync (EMailSession *session,
+                                      CamelService *service,
+                                      GCancellable *cancellable)
+{
+       gulong cancelled_id = 0;
+
+       g_return_val_if_fail (E_IS_MAIL_SESSION (session), FALSE);
+       g_return_val_if_fail (CAMEL_IS_SERVICE (service), FALSE);
+
+       g_mutex_lock (&session->priv->used_services_lock);
+
+       if (cancellable)
+               cancelled_id = g_cancellable_connect (cancellable, G_CALLBACK 
(mail_session_wakeup_used_services_cond), session, NULL);
+
+       while (!g_cancellable_is_cancelled (cancellable) &&
+               g_hash_table_contains (session->priv->used_services, service)) {
+               g_cond_wait (&session->priv->used_services_cond, 
&session->priv->used_services_lock);
+       }
+
+       if (cancelled_id)
+               g_cancellable_disconnect (cancellable, cancelled_id);
+
+       if (!g_cancellable_is_cancelled (cancellable))
+               g_hash_table_insert (session->priv->used_services, service, 
GINT_TO_POINTER (1));
+
+       g_mutex_unlock (&session->priv->used_services_lock);
+
+       return !g_cancellable_is_cancelled (cancellable);
+}
+
+/**
+ * e_mail_session_unmark_service_used:
+ * @session: an #EMailSession
+ * @service: a #CamelService
+ *
+ * Frees a "use lock" on the @service, thus it can be used by others. If 
anything
+ * is waiting for it in e_mail_session_mark_service_used_sync(), then it is 
woken up.
+ *
+ * Since: 3.12.10
+ **/
+void
+e_mail_session_unmark_service_used (EMailSession *session,
+                                   CamelService *service)
+{
+       g_return_if_fail (E_IS_MAIL_SESSION (session));
+       g_return_if_fail (CAMEL_IS_SERVICE (service));
+
+       g_mutex_lock (&session->priv->used_services_lock);
+
+       if (g_hash_table_remove (session->priv->used_services, service)) {
+               g_cond_signal (&session->priv->used_services_cond);
+       }
+
+       g_mutex_unlock (&session->priv->used_services_lock);
+}
diff --git a/libemail-engine/e-mail-session.h b/libemail-engine/e-mail-session.h
index 7959d0c..674858d 100644
--- a/libemail-engine/e-mail-session.h
+++ b/libemail-engine/e-mail-session.h
@@ -150,6 +150,13 @@ CamelFolder *      e_mail_session_uri_to_folder_finish
 EMVFolderContext *
                e_mail_session_create_vfolder_context
                                                (EMailSession *session);
+gboolean       e_mail_session_mark_service_used_sync
+                                               (EMailSession *session,
+                                                CamelService *service,
+                                                GCancellable *cancellable);
+void           e_mail_session_unmark_service_used
+                                               (EMailSession *session,
+                                                CamelService *service);
 
 /* Useful GBinding transform functions */
 gboolean       e_binding_transform_service_to_source
diff --git a/libemail-engine/mail-ops.c b/libemail-engine/mail-ops.c
index 969fbcb..e84a412 100644
--- a/libemail-engine/mail-ops.c
+++ b/libemail-engine/mail-ops.c
@@ -590,7 +590,6 @@ static void
 mail_send_message (struct _send_queue_msg *m,
                    CamelFolder *queue,
                    const gchar *uid,
-                   CamelTransport *transport,
                    CamelFilterDriver *driver,
                    GCancellable *cancellable,
                    GError **error)
@@ -622,17 +621,24 @@ mail_send_message (struct _send_queue_msg *m,
        if (service != NULL)
                provider = camel_service_get_provider (service);
 
-       err = g_string_new ("");
-       xev = mail_tool_remove_xevolution_headers (message);
-
        if (CAMEL_IS_TRANSPORT (service)) {
                const gchar *tuid;
 
                /* Let the dialog know the right account it is using. */
-               tuid = camel_service_get_uid (CAMEL_SERVICE (transport));
+               tuid = camel_service_get_uid (service);
                report_status (m, CAMEL_FILTER_STATUS_ACTION, 0, tuid);
        }
 
+       if (service && !e_mail_session_mark_service_used_sync (m->session, 
service, cancellable)) {
+               g_warn_if_fail (g_cancellable_set_error_if_cancelled 
(cancellable, error));
+               g_clear_object (&service);
+               g_clear_object (&message);
+               return;
+       }
+
+       err = g_string_new ("");
+       xev = mail_tool_remove_xevolution_headers (message);
+
        /* Check for email sending */
        from = (CamelAddress *) camel_internet_address_new ();
        resent_from = camel_medium_get_header (
@@ -857,6 +863,9 @@ exit:
                }
        }
 
+       if (service)
+               e_mail_session_unmark_service_used (m->session, service);
+
        if (local_error != NULL)
                g_propagate_error (error, local_error);
 
@@ -957,7 +966,7 @@ send_queue_exec (struct _send_queue_msg *m,
                        cancellable, (i + 1) * 100 / send_uids->len);
 
                mail_send_message (
-                       m, m->queue, send_uids->pdata[i], m->transport,
+                       m, m->queue, send_uids->pdata[i],
                        m->driver, cancellable, &local_error);
                if (local_error != NULL) {
                        if (!g_error_matches (local_error, G_IO_ERROR, 
G_IO_ERROR_CANCELLED)) {
-- 
cgit v0.10.1
++++++ evolution-no-DTEND-set.patch ++++++
>From 96fd44260970317472ea5d672c3edefaa9faec19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= <erick....@gmail.com>
Date: Tue, 9 Dec 2014 15:59:30 +0100
Subject: ECalModel: Workaround issue with no DTEND set


diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index 05ffef5..afdec4c 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -4281,6 +4281,10 @@ e_cal_model_set_instance_times (ECalModelComponent 
*comp_data,
                }
        }
 
+       /* Some events can have missing DTEND, then use the start_time for them 
*/
+       if (icaltime_is_null_time (end_time))
+               end_time = start_time;
+
        if (start_time.zone)
                zone = start_time.zone;
        else {
-- 
cgit v0.10.1

>From 012fa7ddfdf43b77d40449a28c26cb45b981a421 Mon Sep 17 00:00:00 2001
From: Milan Crha <mc...@redhat.com>
Date: Tue, 9 Dec 2014 15:51:59 +0100
Subject: e_calendar_view_get_tooltips: Do not crash when there's no DTEND set


diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index 686327a..365b63c 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -2157,24 +2157,30 @@ e_calendar_view_get_tooltips (const 
ECalendarViewEventData *data)
        } else {
                zone = NULL;
        }
-       t_start = icaltime_as_timet_with_zone (*dtstart.value, zone);
-       t_end = icaltime_as_timet_with_zone (*dtend.value, zone);
 
-       tmp1 = get_label (dtstart.value, zone, default_zone);
-       tmp = calculate_time (t_start, t_end);
+       if (dtstart.value) {
+               t_start = icaltime_as_timet_with_zone (*dtstart.value, zone);
+               if (dtend.value)
+                       t_end = icaltime_as_timet_with_zone (*dtend.value, 
zone);
+               else
+                       t_end = t_start;
 
-       /* To Translators: It will display "Time: ActualStartDateAndTime 
(DurationOfTheMeeting)"*/
-       tmp2 = g_strdup_printf (_("Time: %s %s"), tmp1, tmp);
-       if (zone && !cal_comp_util_compare_event_timezones (newcomp, client, 
default_zone)) {
-               g_free (tmp);
-               g_free (tmp1);
+               tmp1 = get_label (dtstart.value, zone, default_zone);
+               tmp = calculate_time (t_start, t_end);
 
-               tmp1 = get_label (dtstart.value, zone, zone);
-               tmp = g_strconcat (tmp2, "\n\t[ ", tmp1, " ", 
icaltimezone_get_display_name (zone), " ]", NULL);
-       } else {
-               g_free (tmp);
-               tmp = tmp2;
-               tmp2 = NULL;
+               /* To Translators: It will display "Time: 
ActualStartDateAndTime (DurationOfTheMeeting)"*/
+               tmp2 = g_strdup_printf (_("Time: %s %s"), tmp1, tmp);
+               if (zone && !cal_comp_util_compare_event_timezones (newcomp, 
client, default_zone)) {
+                       g_free (tmp);
+                       g_free (tmp1);
+
+                       tmp1 = get_label (dtstart.value, zone, zone);
+                       tmp = g_strconcat (tmp2, "\n\t[ ", tmp1, " ", 
icaltimezone_get_display_name (zone), " ]", NULL);
+               } else {
+                       g_free (tmp);
+                       tmp = tmp2;
+                       tmp2 = NULL;
+               }
        }
 
        e_cal_component_free_datetime (&dtstart);
-- 
cgit v0.10.1
++++++ evolution-protected-login-PIN.patch ++++++
>From 99184975e80f6db542dc363a4c51d74758016088 Mon Sep 17 00:00:00 2001
From: David Woodhouse <david.woodho...@intel.com>
Date: Mon, 8 Dec 2014 14:08:20 +0000
Subject: Bug 741059 - Prompts for login PIN with
 CKF_PROTECTED_AUTHENTICATION_PATH

This turns out to be relatively simple to fix. Based on the patch in
http://bugzilla.mozilla.org/show_bug.cgi?id=229023

(cherry picked from commit 080e9fa33f57eb909555b439c0015d54bfb701dc)

diff --git a/smime/lib/e-cert-db.c b/smime/lib/e-cert-db.c
index abb07be..21b167c 100644
--- a/smime/lib/e-cert-db.c
+++ b/smime/lib/e-cert-db.c
@@ -387,6 +387,11 @@ pk11_password (PK11SlotInfo *slot,
 
        gboolean rv = FALSE;
 
+       /* For tokens with CKF_PROTECTED_AUTHENTICATION_PATH we
+        * need to return a non-empty but unused password */
+       if (PK11_ProtectedAuthenticationPath(slot))
+               return PORT_Strdup("");
+
        g_signal_emit (
                e_cert_db_peek (),
                e_cert_db_signals[PK11_PASSWD], 0,
-- 
cgit v0.10.1

++++++ evolution-wrong-message-preview.patch ++++++
>From afab9d238a8b7e1b3bbcea9047431ae6395ecf65 Mon Sep 17 00:00:00 2001
From: Milan Crha <mc...@redhat.com>
Date: Fri, 12 Dec 2014 13:34:20 +0100
Subject: Bug 724039 - Message preview shows a wrong message


diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index 07ac192..acf5124 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -957,6 +957,7 @@ mail_reader_print_parse_message_cb (GObject *source_object,
        EMailPrinter *printer;
        EMailPartList *part_list;
        AsyncContext *async_context;
+       GError *local_error = NULL;
 
        reader = E_MAIL_READER (source_object);
        async_context = (AsyncContext *) user_data;
@@ -964,7 +965,17 @@ mail_reader_print_parse_message_cb (GObject *source_object,
        activity = async_context->activity;
        cancellable = e_activity_get_cancellable (activity);
 
-       part_list = e_mail_reader_parse_message_finish (reader, result);
+       part_list = e_mail_reader_parse_message_finish (reader, result, 
&local_error);
+
+       if (local_error) {
+               g_warn_if_fail (g_error_matches (local_error, G_IO_ERROR, 
G_IO_ERROR_CANCELLED));
+
+               e_activity_handle_cancellation (activity, local_error);
+               g_clear_error (&local_error);
+               async_context_free (async_context);
+
+               return;
+       }
 
        printer = e_mail_printer_new (part_list);
 
@@ -1650,10 +1661,21 @@ mail_reader_reply_message_parsed (GObject *object,
        EMsgComposer *composer;
        CamelMimeMessage *message;
        AsyncContext *async_context;
+       GError *local_error = NULL;
 
        async_context = (AsyncContext *) user_data;
 
-       part_list = e_mail_reader_parse_message_finish (reader, result);
+       part_list = e_mail_reader_parse_message_finish (reader, result, 
&local_error);
+
+       if (local_error) {
+               g_warn_if_fail (g_error_matches (local_error, G_IO_ERROR, 
G_IO_ERROR_CANCELLED));
+
+               g_clear_error (&local_error);
+               async_context_free (async_context);
+
+               return;
+       }
+
        message = e_mail_part_list_get_message (part_list);
 
        backend = e_mail_reader_get_backend (async_context->reader);
@@ -2351,6 +2373,7 @@ mail_reader_parse_message_run (GSimpleAsyncResult *simple,
        EMailPartList *part_list;
        AsyncContext *async_context;
        gchar *mail_uri;
+       GError *local_error = NULL;
 
        async_context = g_simple_async_result_get_op_res_gpointer (simple);
 
@@ -2389,6 +2412,9 @@ mail_reader_parse_message_run (GSimpleAsyncResult *simple,
        g_free (mail_uri);
 
        async_context->part_list = part_list;
+
+       if (g_cancellable_set_error_if_cancelled (cancellable, &local_error))
+               g_simple_async_result_take_error (simple, local_error);
 }
 
 void
@@ -2438,7 +2464,8 @@ e_mail_reader_parse_message (EMailReader *reader,
 
 EMailPartList *
 e_mail_reader_parse_message_finish (EMailReader *reader,
-                                    GAsyncResult *result)
+                                    GAsyncResult *result,
+                                   GError **error)
 {
        GSimpleAsyncResult *simple;
        AsyncContext *async_context;
@@ -2449,6 +2476,10 @@ e_mail_reader_parse_message_finish (EMailReader *reader,
                e_mail_reader_parse_message), NULL);
 
        simple = G_SIMPLE_ASYNC_RESULT (result);
+
+       if (g_simple_async_result_propagate_error (simple, error))
+               return NULL;
+
        async_context = g_simple_async_result_get_op_res_gpointer (simple);
 
        if (async_context->part_list != NULL)
diff --git a/mail/e-mail-reader-utils.h b/mail/e-mail-reader-utils.h
index 32c6ae0..18f937b 100644
--- a/mail/e-mail-reader-utils.h
+++ b/mail/e-mail-reader-utils.h
@@ -91,7 +91,8 @@ void          e_mail_reader_parse_message     (EMailReader 
*reader,
                                                 gpointer user_data);
 EMailPartList *        e_mail_reader_parse_message_finish
                                                (EMailReader *reader,
-                                                GAsyncResult *result);
+                                                GAsyncResult *result,
+                                                GError **error);
 
 G_END_DECLS
 
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index 01ad296..cdf549d 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -3091,11 +3091,19 @@ set_mail_display_part_list (GObject *object,
        EMailPartList *part_list;
        EMailReader *reader;
        EMailDisplay *display;
+       GError *local_error = NULL;
 
        reader = E_MAIL_READER (object);
        display = e_mail_reader_get_mail_display (reader);
 
-       part_list = e_mail_reader_parse_message_finish (reader, result);
+       part_list = e_mail_reader_parse_message_finish (reader, result, 
&local_error);
+
+       if (local_error) {
+               g_warn_if_fail (g_error_matches (local_error, G_IO_ERROR, 
G_IO_ERROR_CANCELLED));
+
+               g_clear_error (&local_error);
+               return;
+       }
 
        e_mail_display_set_part_list (display, part_list);
        e_mail_display_load (display, NULL);
-- 
cgit v0.10.1
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to