aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog17
-rw-r--r--shell/e-shell-config-autocompletion.c4
-rw-r--r--shell/e-shell-config-default-folders.c6
-rw-r--r--shell/evolution-shell-client.c8
-rw-r--r--shell/evolution-shell-component.c5
5 files changed, 24 insertions, 16 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 18496e71df..94fdd49185 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,20 @@
+2003-01-10 Ettore Perazzoli <ettore@ximian.com>
+
+ * evolution-shell-component.c (impl_setOwner): Don't duplicate the
+ shell object here before passing to evolution_shell_client_new().
+
+ * evolution-shell-client.c (evolution_shell_client_construct):
+ Dupliate the @corba_shell before storing into the
+ EvolutionShellClientPrivate struct.
+
+ * e-shell-config-default-folders.c
+ (e_shell_config_default_folders_create_widget): Do not duplicate
+ the shell's CORBA objref.
+
+ * e-shell-config-autocompletion.c
+ (e_shell_config_autocompletion_create_widget): Do not duplicate
+ the shell's CORBA objref.
+
2003-01-10 Dan Winship <danw@ximian.com>
* e-storage-set-view.c (popup_folder_menu): Make this work again.
diff --git a/shell/e-shell-config-autocompletion.c b/shell/e-shell-config-autocompletion.c
index 3ab2650ab2..df232e8067 100644
--- a/shell/e-shell-config-autocompletion.c
+++ b/shell/e-shell-config-autocompletion.c
@@ -87,7 +87,6 @@ config_control_apply_callback (EvolutionConfigControl *config_control,
GtkWidget *
e_shell_config_autocompletion_create_widget (EShell *shell, EvolutionConfigControl *config_control)
{
- GNOME_Evolution_Shell shell_dup;
EvolutionAutocompletionConfig *ac;
CORBA_Environment ev;
GConfClient *client;
@@ -98,8 +97,7 @@ e_shell_config_autocompletion_create_widget (EShell *shell, EvolutionConfigContr
CORBA_exception_init (&ev);
- shell_dup = CORBA_Object_duplicate (BONOBO_OBJREF (shell), &ev);
- ac->shell_client = evolution_shell_client_new (shell_dup);
+ ac->shell_client = evolution_shell_client_new (BONOBO_OBJREF (shell));
client = gconf_client_get_default ();
xml = gconf_client_get_string (client, "/apps/evolution/addressbook/completion/uris", NULL);
diff --git a/shell/e-shell-config-default-folders.c b/shell/e-shell-config-default-folders.c
index 9ee4cd7be8..6dc06e4915 100644
--- a/shell/e-shell-config-default-folders.c
+++ b/shell/e-shell-config-default-folders.c
@@ -162,17 +162,13 @@ setup_folder_selector (EvolutionDefaultFolderConfig *dfc,
GtkWidget*
e_shell_config_default_folders_create_widget (EShell *shell, EvolutionConfigControl *config_control)
{
- GNOME_Evolution_Shell shell_dup;
CORBA_Environment ev;
EvolutionDefaultFolderConfig *dfc;
GtkWidget *widget;
dfc = g_new0 (EvolutionDefaultFolderConfig, 1);
- CORBA_exception_init (&ev);
- shell_dup = CORBA_Object_duplicate (BONOBO_OBJREF (shell), &ev);
- CORBA_exception_free (&ev);
- dfc->shell_client = evolution_shell_client_new (shell_dup);
+ dfc->shell_client = evolution_shell_client_new (BONOBO_OBJREF (shell));
dfc->glade = glade_xml_new (EVOLUTION_GLADEDIR "/e-shell-config-default-folders.glade", NULL, NULL);
diff --git a/shell/evolution-shell-client.c b/shell/evolution-shell-client.c
index e5cabc34e4..f21e9860b6 100644
--- a/shell/evolution-shell-client.c
+++ b/shell/evolution-shell-client.c
@@ -393,10 +393,11 @@ evolution_shell_client_construct (EvolutionShellClient *shell_client,
priv = shell_client->priv;
g_return_if_fail (priv->activity_interface == CORBA_OBJECT_NIL);
- priv->corba_objref = corba_shell;
-
CORBA_exception_init (&ev);
+
+ priv->corba_objref = CORBA_Object_duplicate (corba_shell, &ev);
Bonobo_Unknown_ref (priv->corba_objref, &ev);
+
CORBA_exception_free (&ev);
priv->activity_interface = query_shell_interface (shell_client, "IDL:GNOME/Evolution/Activity:1.0");
@@ -408,8 +409,7 @@ evolution_shell_client_construct (EvolutionShellClient *shell_client,
* evolution_shell_client_new:
* @corba_shell: A pointer to the CORBA Evolution::Shell interface.
*
- * Create a new client object for @corba_shell. The shell client will
- * free @corba_shell when it is destroyed.
+ * Create a new client object for @corba_shell.
*
* Return value: A pointer to the Evolution::Shell client BonoboObject.
**/
diff --git a/shell/evolution-shell-component.c b/shell/evolution-shell-component.c
index ea28fa8cf4..abeab450ab 100644
--- a/shell/evolution-shell-component.c
+++ b/shell/evolution-shell-component.c
@@ -400,7 +400,6 @@ impl_setOwner (PortableServer_Servant servant,
BonoboObject *bonobo_object;
EvolutionShellComponent *shell_component;
EvolutionShellComponentPrivate *priv;
- GNOME_Evolution_Shell shell_duplicate;
bonobo_object = bonobo_object_from_servant (servant);
shell_component = EVOLUTION_SHELL_COMPONENT (bonobo_object);
@@ -427,10 +426,8 @@ impl_setOwner (PortableServer_Servant servant,
return;
}
- shell_duplicate = CORBA_Object_duplicate (shell, ev);
-
if (ev->_major == CORBA_NO_EXCEPTION) {
- priv->owner_client = evolution_shell_client_new (shell_duplicate);
+ priv->owner_client = evolution_shell_client_new (shell);
g_signal_emit (shell_component, signals[OWNER_SET], 0, priv->owner_client, evolution_homedir);
setup_owner_pinging (shell_component);