From eb0bb1c1612041fa46b4c3b28def8447b1689313 Mon Sep 17 00:00:00 2001
From: Li Yuan
Date: Fri, 7 Nov 2008 09:26:49 +0000
Subject: [PATCH] Bug #478583. Do not add the relation if it is already in the
relationset.
2008-11-07 Li Yuan
* atk/atkrelationset.c: (atk_relation_set_add):
Bug #478583. Do not add the relation if it is already
in the relationset.
svn path=/trunk/; revision=1295
---
ChangeLog | 7 +++++++
atk/atkrelationset.c | 8 +++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index d2818fc..ed37dff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,14 @@
2008-11-07 Li Yuan
+ * atk/atkrelationset.c: (atk_relation_set_add):
+ Bug #478583. Do not add the relation if it is already
+ in the relationset.
+
+2008-11-07 Li Yuan
+
* atk/atkutil.c: (atk_add_global_event_listener),
(atk_add_key_event_listener):
+ Bug #480126.
Change the return value to 0 if failure accroding to doc.
2008-09-22 Li Yuan
diff --git a/atk/atkrelationset.c b/atk/atkrelationset.c
index 7de1d62..3b975b7 100755
--- a/atk/atkrelationset.c
+++ b/atk/atkrelationset.c
@@ -151,6 +151,8 @@ void
atk_relation_set_add (AtkRelationSet *set,
AtkRelation *relation)
{
+ AtkRelationType relationship;
+
g_return_if_fail (ATK_IS_RELATION_SET (set));
g_return_if_fail (relation != NULL);
@@ -158,7 +160,11 @@ atk_relation_set_add (AtkRelationSet *set,
{
set->relations = g_ptr_array_new ();
}
- g_ptr_array_add (set->relations, relation);
+ relationship = atk_relation_get_relation_type (relation);
+ if (!atk_relation_set_contains (set, relationship))
+ {
+ g_ptr_array_add (set->relations, relation);
+ }
g_object_ref (relation);
}
--
2.7.4