diff options
author | JP Rosevear <jpr@ximian.com> | 2003-05-15 02:44:27 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2003-05-15 02:44:27 +0800 |
commit | 0203f5de7608f34c6510948b36f522c4c3a87fef (patch) | |
tree | ad2cb3601cc04bff1993794236b3410b4d3d2040 /addressbook/backend/ebook | |
parent | d49d8a2f15034c24cc67ac3922570d95643c39a5 (diff) | |
download | gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.tar gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.tar.gz gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.tar.bz2 gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.tar.lz gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.tar.xz gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.tar.zst gsoc2013-evolution-0203f5de7608f34c6510948b36f522c4c3a87fef.zip |
clear the view (book_open_cb): track the book in the view, don't unref the
2003-05-14 JP Rosevear <jpr@ximian.com>
* gui/component/addressbook.c (addressbook_view_unref): clear the
view
(book_open_cb): track the book in the view, don't unref the book
(set_prop): set the book
(retrieve_shell_view_interface_from_control): get the shell view
every time
(set_folder_bar_label): release and unref the shell view
* gui/component/addressbook-storage.h: add proto
* gui/component/addressbook-storage.c
(addressbook_storage_cleanup): unref the storage
* gui/component/addressbook-component.c (owner_unset_cb): clean up
storage
* backend/ebook/e-book.c (e_book_load_uri): track the listener
signal
(e_book_dispose): unref the listener and disconnect the signal
svn path=/trunk/; revision=21179
Diffstat (limited to 'addressbook/backend/ebook')
-rw-r--r-- | addressbook/backend/ebook/e-book.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c index c20f0e7c5c..7cf33d09c0 100644 --- a/addressbook/backend/ebook/e-book.c +++ b/addressbook/backend/ebook/e-book.c @@ -57,6 +57,7 @@ struct _EBookPrivate { gchar *uri; + gulong listener_signal; gulong died_signal; }; @@ -773,8 +774,8 @@ e_book_load_uri (EBook *book, return; } - g_signal_connect (book->priv->listener, "responses_queued", - G_CALLBACK (e_book_check_listener_queue), book); + book->priv->listener_signal = g_signal_connect (book->priv->listener, "responses_queued", + G_CALLBACK (e_book_check_listener_queue), book); load_uri_data = g_new (EBookLoadURIData, 1); load_uri_data->open_response = open_response; @@ -1605,9 +1606,15 @@ e_book_dispose (GObject *object) CORBA_exception_init (&ev); } } - + CORBA_exception_free (&ev); + if (book->priv->listener) { + g_signal_handler_disconnect (book->priv->comp_listener, book->priv->listener_signal); + bonobo_object_unref (book->priv->listener); + book->priv->listener = NULL; + } + if (book->priv->comp_listener) { g_signal_handler_disconnect (book->priv->comp_listener, book->priv->died_signal); g_object_unref (book->priv->comp_listener); |