diff options
author | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2009-08-05 18:32:47 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2009-08-05 18:35:13 -0400 |
commit | dcc0cecdc50dfdfd459dc1b5d04eac6fc6a9313a (patch) | |
tree | 2e83d645333dc2ea8a6221d99fe2d0d0e7e52b83 | |
parent | 1118ddb9d0c23297739078a272d521b8bdc2452a (diff) |
Emit session-invalidated on channel dispose
-rw-r--r-- | telepathy-farsight/channel.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/telepathy-farsight/channel.c b/telepathy-farsight/channel.c index 0b26c7c..85b804c 100644 --- a/telepathy-farsight/channel.c +++ b/telepathy-farsight/channel.c @@ -408,9 +408,21 @@ tf_channel_dispose (GObject *object) for (i = 0; i < self->priv->sessions->len; i++) { GObject *obj = g_ptr_array_index (self->priv->sessions, i); + FsConference *conf = NULL; + FsParticipant *part = NULL; g_signal_handlers_disconnect_by_func (obj, new_stream_cb, self); + g_object_get (obj, + "farsight-conference", &conf, + "farsight-participant", &part, + NULL); + + g_signal_emit (self, signals[SESSION_INVALIDATED], 0, conf, part); + + g_object_unref (conf); + g_object_unref (part); + g_object_unref (g_ptr_array_index (self->priv->sessions, i)); } |