From 420b908f07c260cc727b7342a575e320a5627da7 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 20 Jun 2003 04:57:50 +0000 Subject: ** See bug #45063 2003-06-19 Not Zed ** See bug #45063 * folder-browser.c (do_message_selected): dont re-load if the same message gets selected again as one we've already shown. Etree sends out selection changed events even when when it hasn't. svn path=/trunk/; revision=21490 --- mail/folder-browser.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'mail/folder-browser.c') diff --git a/mail/folder-browser.c b/mail/folder-browser.c index 6ec4bf14e0..0f09f8b7fd 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -2473,12 +2473,16 @@ do_message_selected (FolderBrowser *fb) /* if we are loading, then set a pending, but leave the loading, coudl cancel here (?) */ if (fb->loading_uid) { - g_free (fb->pending_uid); - fb->pending_uid = g_strdup (fb->new_uid); + if (fb->new_uid == NULL || strcmp(fb->pending_uid, fb->new_uid) != 0) { + g_free (fb->pending_uid); + fb->pending_uid = g_strdup (fb->new_uid); + } } else { if (fb->new_uid) { - fb->loading_uid = g_strdup (fb->new_uid); - mail_get_message (fb->folder, fb->loading_uid, done_message_selected, fb, mail_thread_new); + if (fb->loaded_uid == NULL || strcmp(fb->new_uid, fb->loaded_uid) != 0) { + fb->loading_uid = g_strdup (fb->new_uid); + mail_get_message (fb->folder, fb->loading_uid, done_message_selected, fb, mail_thread_new); + } } else { mail_display_set_message (fb->mail_display, NULL, NULL, NULL); } -- cgit v1.2.3