aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog8
-rw-r--r--shell/e-shell-view-menu.c5
-rw-r--r--shell/e-shell-view.c5
3 files changed, 14 insertions, 4 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 2a6293c485..bc87bec543 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,11 @@
+2001-07-15 Ettore Perazzoli <ettore@ximian.com>
+
+ * e-shell-view-menu.c (e_shell_view_menu_setup): Connect the
+ "line_status_changed" signal with
+ `gtk_signal_connect_while_alive()' for the shell views, so we
+ don't crash if a view gets destroyed.
+ * e-shell-view.c (e_shell_view_construct): Likewise.
+
2001-07-12 Jason Leach <jleach@ximian.com>
* e-shell-view-menu.c (command_submit_bug): Because
diff --git a/shell/e-shell-view-menu.c b/shell/e-shell-view-menu.c
index 2d7cd8e4a9..f8a0368d64 100644
--- a/shell/e-shell-view-menu.c
+++ b/shell/e-shell-view-menu.c
@@ -776,7 +776,8 @@ e_shell_view_menu_setup (EShellView *shell_view)
SHORTCUT_BAR_TOGGLE_PATH);
/* Set up the work online / work offline menu item. */
- gtk_signal_connect (GTK_OBJECT (shell), "line_status_changed",
- GTK_SIGNAL_FUNC (shell_line_status_changed_cb), shell_view);
+ gtk_signal_connect_while_alive (GTK_OBJECT (shell), "line_status_changed",
+ GTK_SIGNAL_FUNC (shell_line_status_changed_cb), shell_view,
+ GTK_OBJECT (shell_view));
update_offline_menu_item (shell_view, e_shell_get_line_status (shell));
}
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c
index 689a299871..ba9022cb8a 100644
--- a/shell/e-shell-view.c
+++ b/shell/e-shell-view.c
@@ -1216,8 +1216,9 @@ e_shell_view_construct (EShellView *shell_view,
bonobo_ui_component_thaw (priv->ui_component, NULL);
- gtk_signal_connect (GTK_OBJECT (shell), "line_status_changed",
- GTK_SIGNAL_FUNC (shell_line_status_changed_cb), view);
+ gtk_signal_connect_while_alive (GTK_OBJECT (shell), "line_status_changed",
+ GTK_SIGNAL_FUNC (shell_line_status_changed_cb), view,
+ GTK_OBJECT (view));
return view;
}