aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog7
-rw-r--r--shell/e-shell-window.c9
2 files changed, 15 insertions, 1 deletions
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 <sragavan@novell.com>
+
+ ** 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 <sragavan@novell.com>
** 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;