diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2001-07-15 13:18:49 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2001-07-15 13:18:49 +0800 |
commit | 05877aea9bad861887d7917bdeb53741b84aeb23 (patch) | |
tree | 6d40c69c8ff4c2e07e7399b5894756cb366d035b | |
parent | f6b64ae1df4018a76f4ca65139c5880ac0d946f7 (diff) | |
download | gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.tar gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.tar.gz gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.tar.bz2 gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.tar.lz gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.tar.xz gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.tar.zst gsoc2013-evolution-05877aea9bad861887d7917bdeb53741b84aeb23.zip |
Fix a crash that could happen by closing one or more views, and then
clicking on the off-line button.
svn path=/trunk/; revision=11107
-rw-r--r-- | shell/ChangeLog | 8 | ||||
-rw-r--r-- | shell/e-shell-view-menu.c | 5 | ||||
-rw-r--r-- | shell/e-shell-view.c | 5 |
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; } |