diff options
-rw-r--r-- | shell/ChangeLog | 6 | ||||
-rw-r--r-- | shell/e-shell-settings-dialog.c | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index ec585ad2af..fa7407a399 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,9 @@ +2002-11-16 Chris Toshok <toshok@ximian.com> + + * e-shell-settings-dialog.c (load_pages): init the corba exception + before loading each config page, so previous errors don't make + subsequence pages to fail to load. + 2002-11-15 Ettore Perazzoli <ettore@ximian.com> * Makefile.am: Added rule to generate diff --git a/shell/e-shell-settings-dialog.c b/shell/e-shell-settings-dialog.c index 55a2c74889..a99a0dfc54 100644 --- a/shell/e-shell-settings-dialog.c +++ b/shell/e-shell-settings-dialog.c @@ -160,6 +160,8 @@ load_pages (EShellSettingsDialog *dialog) return; } + CORBA_exception_free (&ev); + language_list = e_get_language_list (); page_list = NULL; @@ -174,6 +176,8 @@ load_pages (EShellSettingsDialog *dialog) int priority; GdkPixbuf *icon; + CORBA_exception_init (&ev); + info = & control_list->_buffer[i]; title = bonobo_server_info_prop_lookup (info, "evolution:config_item:title", language_list); @@ -213,11 +217,15 @@ load_pages (EShellSettingsDialog *dialog) page_list = g_list_prepend (page_list, page); } else { - g_warning ("Cannot activate %s -- %s", info->iid, BONOBO_EX_REPOID (&ev)); + char *bonobo_ex_text = bonobo_exception_get_text (&ev); + g_warning ("Cannot activate %s -- %s", info->iid, bonobo_ex_text); + g_free (bonobo_ex_text); } if (icon != NULL) gdk_pixbuf_unref (icon); + + CORBA_exception_free (&ev); } page_list = sort_page_list (page_list); @@ -249,8 +257,6 @@ load_pages (EShellSettingsDialog *dialog) g_list_free (page_list); e_free_language_list (language_list); CORBA_free (control_list); - - CORBA_exception_free (&ev); } |