aboutsummaryrefslogtreecommitdiffstats
path: root/libemail-engine/mail-mt.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-02-09 03:21:42 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-02-09 03:21:42 +0800
commit60d1c3054aa60d02c763538d6b1f16d9d6ab6ade (patch)
tree755a59156908bd215c03f20f59b0ef770564c805 /libemail-engine/mail-mt.c
parent9c6a7673b80268d96eb007b3273b26d5422f48a1 (diff)
downloadgsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.tar
gsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.tar.gz
gsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.tar.bz2
gsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.tar.lz
gsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.tar.xz
gsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.tar.zst
gsoc2013-evolution-60d1c3054aa60d02c763538d6b1f16d9d6ab6ade.zip
G_PRIORITY_HIGH_IDLE is sufficient to beat GTK+ redraws.
GTK+ uses (G_PRIORITY_HIGH_IDLE + 20) for redrawing operations, which is actually a slightly lower priority than G_PRIORITY_HIGH_IDLE. Therefore for our purpose, G_PRIORITY_HIGH_IDLE is sufficient.
Diffstat (limited to 'libemail-engine/mail-mt.c')
-rw-r--r--libemail-engine/mail-mt.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/libemail-engine/mail-mt.c b/libemail-engine/mail-mt.c
index ef443d43e0..4cec5a8b6f 100644
--- a/libemail-engine/mail-mt.c
+++ b/libemail-engine/mail-mt.c
@@ -215,9 +215,11 @@ mail_msg_unref (gpointer msg)
g_mutex_unlock (&mail_msg_lock);
/* Destroy the message from an idle callback
- * so we know we're in the main loop thread. */
- /* schedule with priority higher than gtk+ uses for animations (check docs for G_PRIORITY_HIGH_IDLE) */
- g_idle_add_full (G_PRIORITY_DEFAULT, (GSourceFunc) mail_msg_free, mail_msg, NULL);
+ * so we know we're in the main loop thread.
+ * Prioritize ahead of GTK+ redraws. */
+ g_idle_add_full (
+ G_PRIORITY_HIGH_IDLE,
+ (GSourceFunc) mail_msg_free, mail_msg, NULL);
}
}
@@ -430,8 +432,9 @@ mail_msg_proxy (MailMsg *msg)
G_LOCK (idle_source_id);
if (idle_source_id == 0)
- /* schedule with priority higher than gtk+ uses for animations (check docs for G_PRIORITY_HIGH_IDLE) */
- idle_source_id = g_idle_add_full (G_PRIORITY_DEFAULT,
+ /* Prioritize ahead of GTK+ redraws. */
+ idle_source_id = g_idle_add_full (
+ G_PRIORITY_HIGH_IDLE,
(GSourceFunc) mail_msg_idle_cb, NULL, NULL);
G_UNLOCK (idle_source_id);
}
@@ -486,8 +489,9 @@ mail_msg_main_loop_push (gpointer msg)
G_LOCK (idle_source_id);
if (idle_source_id == 0)
- /* schedule with priority higher than gtk+ uses for animations (check docs for G_PRIORITY_HIGH_IDLE) */
- idle_source_id = g_idle_add_full (G_PRIORITY_DEFAULT,
+ /* Prioritize ahead of GTK+ redraws. */
+ idle_source_id = g_idle_add_full (
+ G_PRIORITY_HIGH_IDLE,
(GSourceFunc) mail_msg_idle_cb, NULL, NULL);
G_UNLOCK (idle_source_id);
}