Changeset 49885 in webkit


Ignore:
Timestamp:
Oct 20, 2009 2:20:50 PM (15 years ago)
Author:
eric@webkit.org
Message:

2009-10-20 Joanmarie Diggs <joanmarie.diggs@gmail.com>

Reviewed by Xan Lopez.

https://bugs.webkit.org/show_bug.cgi?id=25411
[GTK] ATK accessible ancestry broken

Work around for the problem of bogus additional objects in the ancestry.
We now set the parent when we ref the child, then ask the Atk child if
it knows its parent. This solves the bulk of the cases. For those it
doesn't, fall back to the existing logic.

  • accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_get_parent): (webkit_accessible_ref_child):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r49883 r49885  
     12009-10-20  Joanmarie Diggs  <joanmarie.diggs@gmail.com>
     2
     3        Reviewed by Xan Lopez.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=25411
     6        [GTK] ATK accessible ancestry broken
     7
     8        Work around for the problem of bogus additional objects in the ancestry.
     9        We now set the parent when we ref the child, then ask the Atk child if
     10        it knows its parent. This solves the bulk of the cases. For those it
     11        doesn't, fall back to the existing logic.
     12
     13        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
     14        (webkit_accessible_get_parent):
     15        (webkit_accessible_ref_child):
     16
    1172009-10-20  Brian Weinstein  <bweinstein@apple.com>
    218
  • trunk/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp

    r49775 r49885  
    133133}
    134134
     135static gpointer webkit_accessible_parent_class = NULL;
     136
    135137static AtkObject* webkit_accessible_get_parent(AtkObject* object)
    136138{
     139    // To work around bogus additional objects in the ancestry, we set the
     140    // parent when we ref the child. If the child knows its parent, use that.
     141    AtkObject* parent = ATK_OBJECT_CLASS(webkit_accessible_parent_class)->get_parent(object);
     142    if (parent)
     143        return parent;
     144
    137145    AccessibilityObject* coreParent = core(object)->parentObject();
    138146
     
    176184
    177185    AtkObject* child = coreChild->wrapper();
    178     // TODO: Should we call atk_object_set_parent() here?
    179     //atk_object_set_parent(child, object);
     186    atk_object_set_parent(child, object);
    180187    g_object_ref(child);
    181188
     
    400407}
    401408
    402 static gpointer webkit_accessible_parent_class = NULL;
    403 
    404409static AtkStateSet* webkit_accessible_ref_state_set(AtkObject* object)
    405410{
Note: See TracChangeset for help on using the changeset viewer.