[Telepathy-commits] [telepathy-salut/master] muc-channel: add closed attribute to avoid to fire the Closed signal more than once
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Thu Nov 27 02:59:12 PST 2008
---
src/salut-muc-channel.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/salut-muc-channel.c b/src/salut-muc-channel.c
index 67038db..88fdd77 100644
--- a/src/salut-muc-channel.c
+++ b/src/salut-muc-channel.c
@@ -122,6 +122,7 @@ struct _SalutMucChannelPrivate
SalutMucManager *muc_manager;
TpHandle initiator;
gboolean requested;
+ gboolean closed;
};
#define SALUT_MUC_CHANNEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SALUT_TYPE_MUC_CHANNEL, SalutMucChannelPrivate))
@@ -1236,6 +1237,10 @@ salut_muc_channel_disconnected (GibberTransport *transport, gpointer user_data)
g_signal_emit (self, signals[JOIN_ERROR], 0, &error);
}
+ if (priv->closed)
+ return;
+
+ priv->closed = TRUE;
tp_svc_channel_emit_closed (self);
}
@@ -1329,10 +1334,12 @@ salut_muc_channel_close (TpSvcChannel *iface, DBusGMethodInvocation *context)
if (priv->connected)
{
+ /* priv->closed will be set in salut_muc_channel_disconnected */
gibber_muc_connection_disconnect (priv->muc_connection);
}
else
{
+ priv->closed = TRUE;
tp_svc_channel_emit_closed (self);
}
--
1.5.6.5
More information about the Telepathy-commits
mailing list