summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-08-05 18:32:47 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-08-05 18:35:13 -0400
commitdcc0cecdc50dfdfd459dc1b5d04eac6fc6a9313a (patch)
tree2e83d645333dc2ea8a6221d99fe2d0d0e7e52b83
parent1118ddb9d0c23297739078a272d521b8bdc2452a (diff)
Emit session-invalidated on channel dispose
-rw-r--r--telepathy-farsight/channel.c12
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));
}