From 12323a556d88c4e49cd80524f1e6cb29e9f54d1e Mon Sep 17 00:00:00 2001 From: Jon Trowbridge Date: Thu, 8 Nov 2001 17:31:40 +0000 Subject: Explicitly destroy entries. Part of the fix for the lingering completion 2001-11-08 Jon Trowbridge * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Explicitly destroy entries. Part of the fix for the lingering completion window bug. svn path=/trunk/; revision=14628 --- addressbook/ChangeLog | 6 ++++++ .../gui/component/select-names/e-select-names-bonobo.c | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) (limited to 'addressbook') diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 089cccab42..6f5d0fe9e0 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,9 @@ +2001-11-08 Jon Trowbridge + + * gui/component/select-names/e-select-names-bonobo.c + (impl_destroy): Explicitly destroy entries. Part of the fix for + the lingering completion window bug. + 2001-11-04 JP Rosevear * conduit/address-conduit.c: Use ordering of the pilot's phone diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.c b/addressbook/gui/component/select-names/e-select-names-bonobo.c index a3f4929fa6..071b2e0b2b 100644 --- a/addressbook/gui/component/select-names/e-select-names-bonobo.c +++ b/addressbook/gui/component/select-names/e-select-names-bonobo.c @@ -348,11 +348,18 @@ impl_SelectNames_activate_dialog (PortableServer_Servant servant, /* GtkObject methods. */ +/* ACK! */ +typedef struct { + char *id; + EEntry *entry; +} ESelectNamesManagerEntry; + static void impl_destroy (GtkObject *object) { ESelectNamesBonobo *select_names; ESelectNamesBonoboPrivate *priv; + EIterator *iterator; select_names = E_SELECT_NAMES_BONOBO (object); priv = select_names->priv; @@ -361,6 +368,15 @@ impl_destroy (GtkObject *object) gtk_widget_destroy (GTK_WIDGET (priv->manager->names)); priv->manager->names = NULL; } + + /* More suckage */ + iterator = e_list_get_iterator (priv->manager->entries); + for (e_iterator_reset (iterator); e_iterator_is_valid (iterator); e_iterator_next (iterator)) { + ESelectNamesManagerEntry *entry = (ESelectNamesManagerEntry *)e_iterator_get (iterator); + if (entry && entry->entry) + gtk_widget_destroy (GTK_WIDGET (entry->entry)); + } + gtk_object_unref (GTK_OBJECT (iterator)); /* FIXME: We leak on purpose. This sucks. */ /* gtk_object_unref (GTK_OBJECT (priv->manager)); */ -- cgit v1.2.3