diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2007-08-20 22:56:27 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2007-08-20 22:56:27 +0800 |
commit | dcd1c6ecdc35fbe1b3e1918261b358b77afb20e5 (patch) | |
tree | 694ac51c5088b4269a5b15839eaaefd88f7a917b /mail/mail-component.c | |
parent | de73ad44045a26fc41c3434488feb0dd9d981b0a (diff) | |
download | gsoc2013-evolution-dcd1c6ecdc35fbe1b3e1918261b358b77afb20e5.tar.gz gsoc2013-evolution-dcd1c6ecdc35fbe1b3e1918261b358b77afb20e5.tar.zst gsoc2013-evolution-dcd1c6ecdc35fbe1b3e1918261b358b77afb20e5.zip |
Alternate fix for bug #467599 (also bug #467883).
2007-08-20 Matthew Barnes <mbarnes@redhat.com>
* mail/mail-component.c (enable_folder_tree):
Alternate fix for bug #467599 (also bug #467883).
svn path=/trunk/; revision=34047
Diffstat (limited to 'mail/mail-component.c')
-rw-r--r-- | mail/mail-component.c | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/mail/mail-component.c b/mail/mail-component.c index 938a720fe3..79d5350fc8 100644 --- a/mail/mail-component.c +++ b/mail/mail-component.c @@ -501,7 +501,6 @@ view_on_url (GObject *emitter, const char *url, const char *nice_url, MailCompon static void view_changed(EMFolderView *emfv, EComponentView *component_view) { - MailComponent *mc = mail_component_peek (); EInfoLabel *el = g_object_get_data((GObject *)component_view, "info-label"); CORBA_Environment ev; @@ -650,39 +649,37 @@ disable_folder_tree (gpointer *emfb, GtkWidget *widget) static void enable_folder_tree (GtkWidget *emfb, GtkWidget *emft) { - char *uri; + EMFolderView *emfv = (EMFolderView *) emfb; CamelURL *selected_curl, *current_curl; - CamelFolder *folder; - CamelException ex; - EMFolderView *emfv = (EMFolderView *)emfb; + gchar *uri; - /* 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); + /* Get the currently displayed folder. */ + uri = mail_tools_folder_to_url (emfv->list->folder); + current_curl = uri ? camel_url_new (uri, NULL) : NULL; g_free (uri); - /* selected_curl - Folder that is/was selected in the folder tree */ - uri = em_folder_tree_get_selected_uri ((EMFolderTree *) emft); + /* Get the selected folder in the folder tree. */ + uri = em_folder_tree_get_selected_uri (EM_FOLDER_TREE (emft)); + selected_curl = uri ? camel_url_new (uri, NULL) : NULL; + + if (current_curl && selected_curl && !camel_url_equal (selected_curl, current_curl)) { + CamelFolder *folder; + CamelException ex; - /* 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); + g_signal_emit_by_name ( + emft, "folder-selected", emft, uri, + folder->full_name, uri, folder->folder_flags); } gtk_widget_set_sensitive (emft, TRUE); camel_url_free (current_curl); + camel_url_free (selected_curl); + g_free (uri); } /* Evolution::Component CORBA methods. */ |