From 7da5e3a0ca096465a8768dc2c302972b68ff929b Mon Sep 17 00:00:00 2001 From: Srinivasa Ragavan Date: Fri, 13 Oct 2006 17:24:56 +0000 Subject: ** Fix for bug #334966 svn path=/trunk/; revision=32869 --- shell/ChangeLog | 7 +++++++ shell/e-shell-window.c | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'shell') diff --git a/shell/ChangeLog b/shell/ChangeLog index 454d25a3d3..24f493b1bc 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,10 @@ +2006-10-13 Srinivasa Ragavan + + ** Fix for bug #334966 + + * e-shell-window.c: (impl_dispose), (e_shell_window_init), + (e_shell_window_set_title): Fixes a crash while closing window. + 2006-09-28 Srinivasa Ragavan ** Fix for bug #343331 diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c index a133985461..4e2d73f81b 100644 --- a/shell/e-shell-window.c +++ b/shell/e-shell-window.c @@ -126,6 +126,7 @@ struct _EShellWindowPrivate { /* The timeout for saving the window size */ guint store_window_size_timer; + gboolean destroyed; }; @@ -838,6 +839,8 @@ impl_dispose (GObject *object) EShellWindow *self = E_SHELL_WINDOW (object); EShellWindowPrivate *priv = self->priv; + priv->destroyed = TRUE; + if (priv->shell != NULL) { g_object_remove_weak_pointer (G_OBJECT (priv->shell), (void **) &priv->shell); priv->shell = NULL; @@ -981,7 +984,8 @@ e_shell_window_init (EShellWindow *shell_window) priv->tooltips = gtk_tooltips_new (); priv->shell_view = e_shell_view_new(shell_window); - + priv->destroyed = FALSE; + shell_window->priv = priv; /** @HookPoint: Shell Main Menu @@ -1234,6 +1238,9 @@ e_shell_window_set_title(EShellWindow *window, const char *component_id, const c ComponentView *view = NULL; GSList *p; + if (priv->destroyed) + return; + for (p = priv->component_views; p != NULL; p = p->next) { ComponentView *this_view = p->data; -- cgit