summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2011-10-27 12:03:19 +0200
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2011-10-31 15:51:36 +0100
commit7fd5cd6f113df88f5282486c86c0491f83b74919 (patch)
treefd4168a1a9afbc69c50c09c43ffadfaf189b25e5
parent3f095ac75873015fc6758f1da7c21f955d5b5ab4 (diff)
group-mixin: always set the Members_Changed_Detailed flag
We unconditionally implements the MembersChangedDetailed signal so this flag should always be set. https://bugs.freedesktop.org/show_bug.cgi?id=42305
-rw-r--r--telepathy-glib/group-mixin.c2
-rw-r--r--tests/lib/textchan-group.c13
2 files changed, 11 insertions, 4 deletions
diff --git a/telepathy-glib/group-mixin.c b/telepathy-glib/group-mixin.c
index 959fb4ac..5bf68fdb 100644
--- a/telepathy-glib/group-mixin.c
+++ b/telepathy-glib/group-mixin.c
@@ -334,7 +334,7 @@ tp_group_mixin_init (GObject *obj,
if (self_handle != 0)
mixin->self_handle = tp_handle_ref (handle_repo, self_handle);
- mixin->group_flags = 0;
+ mixin->group_flags = TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED;
mixin->members = tp_handle_set_new (handle_repo);
mixin->local_pending = tp_handle_set_new (handle_repo);
diff --git a/tests/lib/textchan-group.c b/tests/lib/textchan-group.c
index c4432574..618b8ca4 100644
--- a/tests/lib/textchan-group.c
+++ b/tests/lib/textchan-group.c
@@ -143,9 +143,6 @@ constructor (GType type,
TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE,
G_MAXUINT);
- if (self->priv->detailed)
- flags |= TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED;
-
if (self->priv->properties)
flags |= TP_CHANNEL_GROUP_FLAG_PROPERTIES;
@@ -153,6 +150,16 @@ constructor (GType type,
tp_group_mixin_init (object, G_STRUCT_OFFSET (TpTestsTextChannelGroup, group),
contact_repo, self->conn->self_handle);
+
+ if (!self->priv->detailed)
+ {
+ /* TpGroupMixin always set the Members_Changed_Detailed flag so we have
+ * to cheat and manually remove it to pretend we don't implement it. */
+ TpGroupMixin *group = TP_GROUP_MIXIN (self);
+
+ group->group_flags &= ~TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED;
+ }
+
tp_group_mixin_change_flags (object, flags, 0);
return object;