From 3ea7bd690fb04f799fea74dc251446ba735a4927 Mon Sep 17 00:00:00 2001 From: Johnny Jacob Date: Mon, 20 Aug 2007 02:14:38 +0000 Subject: Fix for bug #467599. svn path=/trunk/; revision=34039 --- mail/ChangeLog | 8 ++++++++ mail/mail-component.c | 28 ++++++++++++++++------------ 2 files changed, 24 insertions(+), 12 deletions(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index aa47412c71..62e070be6b 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2007-08-20 Johnny Jacob + + ** Fix for bug #467599. + + * mail-component.c: (enable_folder_tree): No need to emit a + folder_selected signal when no folder is selected. Plugged a + memory leak. + 2007-08-20 Srinivasa Ragavan ** Fix for bug #467165 diff --git a/mail/mail-component.c b/mail/mail-component.c index 47196b3626..938a720fe3 100644 --- a/mail/mail-component.c +++ b/mail/mail-component.c @@ -656,29 +656,33 @@ enable_folder_tree (GtkWidget *emfb, GtkWidget *emft) CamelException ex; EMFolderView *emfv = (EMFolderView *)emfb; - camel_exception_init (&ex); - - /* Currently displayed folder */ + /* current_curl - Currently displayed folder (can be the account_search_vfolder) */ MessageList *ml = emfv->list; folder = ml->folder; uri = mail_tools_folder_to_url (folder); current_curl = camel_url_new (uri, NULL); + g_free (uri); - /* Selected folder in emft*/ + /* selected_curl - Folder that is/was selected in the folder tree */ uri = em_folder_tree_get_selected_uri ((EMFolderTree *) emft); - folder = mail_tool_uri_to_folder (uri, 0, &ex); - selected_curl = camel_url_new (uri, NULL); - camel_exception_clear (&ex); - if (!camel_url_equal (selected_curl, current_curl)) - g_signal_emit_by_name (emft, "folder-selected", emft, uri, folder->full_name, uri, folder->folder_flags); + /* if no folder is selected, skip this section */ + if (uri && *uri) { + camel_exception_init (&ex); + folder = mail_tool_uri_to_folder (uri, 0, &ex); + selected_curl = camel_url_new (uri, NULL); + camel_exception_clear (&ex); + + if (!camel_url_equal (selected_curl, current_curl)) + g_signal_emit_by_name (emft, "folder-selected", emft, uri, folder->full_name, uri, folder->folder_flags); + + camel_url_free (selected_curl); + g_free (uri); + } gtk_widget_set_sensitive (emft, TRUE); camel_url_free (current_curl); - camel_url_free (selected_curl); - g_free (uri); - } /* Evolution::Component CORBA methods. */ -- cgit v1.2.3