aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog10
-rw-r--r--shell/e-shell.c9
2 files changed, 15 insertions, 4 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 378718b44f..cd6bc43ea5 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,13 @@
+2006-06-17 Tor Lillqvist <tml@novell.com>
+
+ * e-shell.c (impl_finalize): Don't call
+ bonobo_activation_active_server_unregister() here, it's too late,
+ the EShell Bonobo object has already been deactivated and its
+ associated CORBA object is NULL.
+ (notify_no_windows_left_idle_cb): Instead, call
+ bonobo_activation_active_server_unregister() here, when the EShell
+ Bonobo object is still fully active.
+
2006-06-19 Srinivasa Ragavan <sragavan@novell.com>
** Fixes bug #252814
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 396ab8a4bd..962fc13c2c 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -360,13 +360,18 @@ static gboolean
notify_no_windows_left_idle_cb (void *data)
{
EShell *shell;
+ EShellPrivate *priv;
shell = E_SHELL (data);
+ priv = shell->priv;
set_interactive (shell, FALSE);
g_signal_emit (shell, signals [NO_WINDOWS_LEFT], 0);
+ if (priv->iid != NULL)
+ bonobo_activation_active_server_unregister (priv->iid,
+ bonobo_object_corba_objref (BONOBO_OBJECT (shell)));
bonobo_object_unref (BONOBO_OBJECT (shell));
return FALSE;
@@ -468,10 +473,6 @@ impl_finalize (GObject *object)
shell = E_SHELL (object);
priv = shell->priv;
- if (priv->iid != NULL)
- bonobo_activation_active_server_unregister (priv->iid,
- bonobo_object_corba_objref (BONOBO_OBJECT (shell)));
-
e_free_string_list (priv->crash_type_names);
g_free (priv);