From 2b9c72826a8574385d0360267217cc068e27a910 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 9 Jan 2009 05:13:07 +0000 Subject: Fix a weird UI merging bug. svn path=/branches/kill-bonobo/; revision=37020 --- mail/e-mail-shell-view.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'mail/e-mail-shell-view.c') diff --git a/mail/e-mail-shell-view.c b/mail/e-mail-shell-view.c index f71f988467..3be18b9804 100644 --- a/mail/e-mail-shell-view.c +++ b/mail/e-mail-shell-view.c @@ -71,6 +71,7 @@ mail_shell_view_toggled (EShellView *shell_view) EShellWindow *shell_window; GtkUIManager *ui_manager; const gchar *basename; + gboolean view_is_active; /* Chain up to parent's toggled() method. */ E_SHELL_VIEW_CLASS (parent_class)->toggled (shell_view); @@ -79,15 +80,18 @@ mail_shell_view_toggled (EShellView *shell_view) shell_window = e_shell_view_get_shell_window (shell_view); ui_manager = e_shell_window_get_ui_manager (shell_window); + view_is_active = e_shell_view_is_active (shell_view); basename = E_MAIL_READER_UI_DEFINITION; - if (e_shell_view_is_active (shell_view)) { + if (view_is_active && priv->merge_id == 0) { priv->merge_id = e_load_ui_definition (ui_manager, basename); e_mail_reader_create_charset_menu ( E_MAIL_READER (priv->mail_shell_content), ui_manager, priv->merge_id); - } else + } else if (!view_is_active && priv->merge_id != 0) { gtk_ui_manager_remove_ui (ui_manager, priv->merge_id); + priv->merge_id = 0; + } gtk_ui_manager_ensure_update (ui_manager); } -- cgit v1.2.3