evolution r37020 - in branches/kill-bonobo: mail shell
- From: mbarnes svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution r37020 - in branches/kill-bonobo: mail shell
- Date: Fri, 9 Jan 2009 05:13:07 +0000 (UTC)
Author: mbarnes
Date: Fri Jan 9 05:13:07 2009
New Revision: 37020
URL: http://svn.gnome.org/viewvc/evolution?rev=37020&view=rev
Log:
Fix a weird UI merging bug.
Modified:
branches/kill-bonobo/mail/e-mail-shell-view.c
branches/kill-bonobo/shell/e-shell-view.c
Modified: branches/kill-bonobo/mail/e-mail-shell-view.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-view.c (original)
+++ branches/kill-bonobo/mail/e-mail-shell-view.c Fri Jan 9 05:13:07 2009
@@ -71,6 +71,7 @@
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 @@
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);
}
Modified: branches/kill-bonobo/shell/e-shell-view.c
==============================================================================
--- branches/kill-bonobo/shell/e-shell-view.c (original)
+++ branches/kill-bonobo/shell/e-shell-view.c Fri Jan 9 05:13:07 2009
@@ -349,16 +349,20 @@
EShellWindow *shell_window;
GtkUIManager *ui_manager;
const gchar *basename;
+ gboolean view_is_active;
shell_view_class = E_SHELL_VIEW_GET_CLASS (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 = shell_view_class->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);
- 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);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]