diff options
-rw-r--r-- | shell/ChangeLog | 6 | ||||
-rw-r--r-- | shell/e-shell-view.c | 16 |
2 files changed, 22 insertions, 0 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index 312b1356f2..be8e9d5fe8 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,9 @@ +2000-11-14 Michael Meeks <michael@helixcode.com> + + * e-shell-view.c (unmerge_on_error): add + (e_shell_view_construct): hook up to system_exception on + ui_container. + 2000-11-11 Matt Bissiri <bissiri@eecs.umich.edu> * e-shell.c: (setup_components), (save_settings_for_component): diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index 9480dcac60..774de785d4 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -812,6 +812,20 @@ shell_view_interface_set_title (EvolutionShellView *shell_view, gtk_window_set_title (GTK_WINDOW (view), title); } +static void +unmerge_on_error (BonoboObject *object, + CORBA_Object cobject, + CORBA_Environment *ev) +{ + BonoboWindow *win; + + win = bonobo_ui_container_get_win (BONOBO_UI_CONTAINER (object)); + + if (win) + bonobo_window_deregister_component_by_ref ( + win, cobject); +} + EShellView * e_shell_view_construct (EShellView *shell_view, @@ -845,6 +859,8 @@ e_shell_view_construct (EShellView *shell_view, container = bonobo_ui_container_new (); bonobo_ui_container_set_win (container, BONOBO_WINDOW (shell_view)); + gtk_signal_connect (GTK_OBJECT (container), "system_exception", + (GtkSignalFunc) unmerge_on_error, NULL); priv->ui_component = bonobo_ui_component_new ("evolution"); bonobo_ui_component_set_container (priv->ui_component, |