Bug #361757. Add ATK_ROLE_LINK and ATK_ROLE_INPUT_METHOD_WINDOW to
authorLi Yuan <li.yuan@sun.com>
Tue, 18 Nov 2008 02:53:29 +0000 (02:53 +0000)
committerLi Yuan <liyuan@src.gnome.org>
Tue, 18 Nov 2008 02:53:29 +0000 (02:53 +0000)
2008-11-14  Li Yuan  <li.yuan@sun.com>

        * atk/atkobject.c:
        Bug #361757. Add ATK_ROLE_LINK and ATK_ROLE_INPUT_METHOD_WINDOW
        to role_items so their name can be got.
        * atk/atkrelation.c: (atk_relation_set_property):
        Bug #478620. Fix memory when atk_relation_set_property.

svn path=/trunk/; revision=1300

ChangeLog
atk/atkobject.c
atk/atkrelation.c

index e8ce033..8a0cfeb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-11-14  Li Yuan  <li.yuan@sun.com>
+
+       * atk/atkobject.c:
+       Bug #361757. Add ATK_ROLE_LINK and ATK_ROLE_INPUT_METHOD_WINDOW
+       to role_items so their name can be got.
+       * atk/atkrelation.c: (atk_relation_set_property):
+       Bug #478620. Fix memory when atk_relation_set_property.
+
 2008-11-11  Li Yuan  <li.yuan@sun.com>
 
        * atk/atkgobjectaccessible.c:
index 234a68a..14cd675 100755 (executable)
@@ -164,7 +164,9 @@ static const AtkRoleItem role_items [] =
   { ATK_ROLE_PAGE, N_("page")},
   { ATK_ROLE_SECTION, N_("section")},
   { ATK_ROLE_REDUNDANT_OBJECT, N_("redundant object")},
-  { ATK_ROLE_FORM, N_("form")}
+  { ATK_ROLE_FORM, N_("form")},
+  { ATK_ROLE_LINK, N_("link")},
+  { ATK_ROLE_INPUT_METHOD_WINDOW, N_("input method window")}
 };
 
 static void            atk_object_class_init        (AtkObjectClass  *klass);
index 970d947..da9cdb7 100755 (executable)
@@ -404,6 +404,18 @@ atk_relation_set_property (GObject       *object,
       relation->relationship = g_value_get_enum (value);
       break; 
     case PROP_TARGET:
+      if (relation->target)
+      {
+        gint i;
+
+        for (i = 0; i < relation->target->len; i++)
+        {
+          g_object_weak_unref (G_OBJECT (g_ptr_array_index (relation->target, i)),
+                               (GWeakNotify) delete_object_while_in_relation,
+                               relation->target);
+        }
+        g_ptr_array_free (relation->target, TRUE);
+      }
       boxed = g_value_get_boxed (value);
       relation->target = atk_relation_get_ptr_array_from_value_array ( (GValueArray *) boxed);
       break;