aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-window-private.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell-window-private.c')
-rw-r--r--shell/e-shell-window-private.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/shell/e-shell-window-private.c b/shell/e-shell-window-private.c
index 1db8652cfa..5e750cfcf4 100644
--- a/shell/e-shell-window-private.c
+++ b/shell/e-shell-window-private.c
@@ -98,6 +98,7 @@ void
e_shell_window_private_init (EShellWindow *window)
{
EShellWindowPrivate *priv = window->priv;
+ GHashTable *loaded_views;
GConfBridge *bridge;
GtkWidget *container;
GtkWidget *widget;
@@ -105,13 +106,17 @@ e_shell_window_private_init (EShellWindow *window)
const gchar *key;
gint height;
+ loaded_views = g_hash_table_new_full (
+ g_direct_hash, g_direct_equal,
+ (GDestroyNotify) NULL,
+ (GDestroyNotify) g_object_unref);
+
priv->manager = gtk_ui_manager_new ();
priv->shell_actions = gtk_action_group_new ("shell");
priv->new_item_actions = gtk_action_group_new ("new-item");
priv->new_source_actions = gtk_action_group_new ("new-source");
priv->shell_view_actions = gtk_action_group_new ("shell-view");
-
- priv->shell_views = g_ptr_array_new ();
+ priv->loaded_views = loaded_views;
e_load_ui_definition (priv->manager, "evolution-shell.ui");
@@ -255,6 +260,8 @@ e_shell_window_private_dispose (EShellWindow *window)
DISPOSE (priv->new_source_actions);
DISPOSE (priv->shell_view_actions);
+ g_hash_table_remove_all (priv->loaded_views);
+
DISPOSE (priv->main_menu);
DISPOSE (priv->main_toolbar);
DISPOSE (priv->content_pane);
@@ -280,6 +287,5 @@ e_shell_window_private_finalize (EShellWindow *window)
{
EShellWindowPrivate *priv = window->priv;
- g_ptr_array_foreach (priv->shell_views, (GFunc) g_object_unref, NULL);
- g_ptr_array_free (priv->shell_views, TRUE);
+ g_hash_table_destroy (priv->loaded_views);
}