Details
[Home]
Issue of the Implementation # S0568
Brief
atk_object_remove_relationship can remove more relationships than it should
Detailed Description
There can be errors if the relationships between objects are processed with both atk_object_add_relationship/atk_object_remove_relationship, atk_object_ref_relation_set and then some function from AtkRelationSet.
Example:
relation_set = atk_object_ref_relation_set(obj); atk_object_add_relationship(obj, type, target1); atk_relation_set_add_relation_by_type(relation_set, type, target2); atk_object_remove_relationship(obj, type, target1);The <type,target1> relationship will be removed in this case but <type,target2> will be removed too, while it should not.
Problem location(s) in the standard
ATK 1.9.0 Reference Manual, AtkObject
Possible solutions
If the AtkRelation instance containing the relationship to be removed has also some other relationships, one can adjust the "target" list in this instance rather than delete the instance.
Component
gtk-atk 1.9.0 or later
Accepted
Gnome Bugzilla 477708
Status
Fixed in ATK 1.25.2 for GNOME 2.25.2
[Home]
»