aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-component-registry.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2000-05-31 07:59:22 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2000-05-31 07:59:22 +0800
commitfad1048c1bc7c92496df1d580064cd3a5e716840 (patch)
treedea19331bd28b02528274583f6fd7e82d191b734 /shell/e-component-registry.c
parent2e24bc8d331395afa0b74fb39ef4cd49ad7be78d (diff)
downloadgsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.tar
gsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.tar.gz
gsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.tar.bz2
gsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.tar.lz
gsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.tar.xz
gsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.tar.zst
gsoc2013-evolution-fad1048c1bc7c92496df1d580064cd3a5e716840.zip
Make quit work again by implementing a CORBA method to unregister
components in ShellComponent. Implemented toggle menu items to hide/show the shortcut bar and the folder bar (but they don't work, apparently because of some BonoboUIHandler bogosity). Implemented a CORBA method in Shell to allow a client to get the component that handles a certain folder type. svn path=/trunk/; revision=3303
Diffstat (limited to 'shell/e-component-registry.c')
-rw-r--r--shell/e-component-registry.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/shell/e-component-registry.c b/shell/e-component-registry.c
index 15e5204569..a2fa72d182 100644
--- a/shell/e-component-registry.c
+++ b/shell/e-component-registry.c
@@ -79,7 +79,20 @@ component_new (const char *id,
static void
component_free (Component *component)
{
+ Evolution_ShellComponent corba_shell_component;
+ CORBA_Environment ev;
+
+ CORBA_exception_init (&ev);
+ corba_shell_component = bonobo_object_corba_objref (BONOBO_OBJECT (component->client));
+ Evolution_ShellComponent_unset_owner (corba_shell_component, &ev);
+ if (ev._major != CORBA_NO_EXCEPTION)
+ g_warning ("Cannot unregister component -- %s", component->id);
+ else
+ g_print ("Component unregistered successfully -- %s\n", component->id);
+ CORBA_exception_free (&ev);
+
g_free (component->id);
+
bonobo_object_unref (BONOBO_OBJECT (component->client));
e_free_string_list (component->folder_type_names);