Changeset 79332 in webkit
- Timestamp:
- Feb 22, 2011 10:24:54 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r79330 r79332 1 2011-02-22 Philippe Normand <pnormand@igalia.com> 2 3 Unreviewed, rolling out r79321. 4 http://trac.webkit.org/changeset/79321 5 https://bugs.webkit.org/show_bug.cgi?id=53146 6 7 Regresses fast/forms/listbox-typeahead-cyrillic.html and fast 8 /spatial-navigation/snav-single-select.html on GTK 9 10 * platform/gtk/accessibility/combo-box-collapsed-selection-changed-expected.txt: Removed. 11 * platform/gtk/accessibility/combo-box-collapsed-selection-changed.html: Removed. 12 1 13 2011-02-02 Martin Robinson <mrobinson@igalia.com> 2 14 -
trunk/Source/WebCore/ChangeLog
r79330 r79332 1 2011-02-22 Philippe Normand <pnormand@igalia.com> 2 3 Unreviewed, rolling out r79321. 4 http://trac.webkit.org/changeset/79321 5 https://bugs.webkit.org/show_bug.cgi?id=53146 6 7 Regresses fast/forms/listbox-typeahead-cyrillic.html and fast 8 /spatial-navigation/snav-single-select.html on GTK 9 10 * accessibility/gtk/AXObjectCacheAtk.cpp: 11 (WebCore::notifyChildrenSelectionChange): 12 (WebCore::AXObjectCache::postPlatformNotification): 13 1 14 2011-02-22 Ilya Tikhonovsky <loislo@chromium.org> 2 15 -
trunk/Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp
r79321 r79332 43 43 } 44 44 45 static AccessibilityObject* getListObject(AccessibilityObject* object)46 {47 // Only list boxes and menu lists supported so far.48 if (!object->isListBox() && !object->isMenuList())49 return 0;50 51 // For list boxes the list object is just itself.52 if (object->isListBox())53 return object;54 55 // For menu lists we need to return the first accessible child,56 // with role MenuListPopupRole, since that's the one holding the list57 // of items with role MenuListOptionRole.58 AccessibilityObject::AccessibilityChildrenVector children = object->children();59 if (!children.size())60 return 0;61 62 AccessibilityObject* listObject = children.at(0).get();63 if (!listObject->isMenuListPopup())64 return 0;65 66 return listObject;67 }68 69 45 static void notifyChildrenSelectionChange(AccessibilityObject* object) 70 46 { … … 74 50 static RefPtr<AccessibilityObject> oldFocusedObject = 0; 75 51 76 // Only list boxes and menu listssupported so far.77 if (!object || ! (object->isListBox() || object->isMenuList()))52 // Only list boxes supported so far. 53 if (!object || !object->isListBox()) 78 54 return; 79 55 … … 82 58 83 59 // Find the item where the selection change was triggered from. 60 AccessibilityObject::AccessibilityChildrenVector items = object->children(); 84 61 SelectElement* select = toSelectElement(static_cast<Element*>(object->node())); 85 62 if (!select) 86 63 return; 87 64 int changedItemIndex = select->activeSelectionStartListIndex(); 88 89 AccessibilityObject* listObject = getListObject(object);90 if (!listObject)91 return;92 93 AccessibilityObject::AccessibilityChildrenVector items = listObject->children();94 65 if (changedItemIndex < 0 || changedItemIndex >= static_cast<int>(items.size())) 95 66 return; 96 67 AccessibilityObject* item = items.at(changedItemIndex).get(); 97 68 98 // Ensure oldFocusedObject belongs to the same list object that69 // Ensure the oldFocusedObject belongs to the same document that 99 70 // the current item so further comparisons make sense. Otherwise, 100 71 // just reset oldFocusedObject so it won't be taken into account. 101 if (item && oldFocusedObject && item-> parentObject() != oldFocusedObject->parentObject())72 if (item && oldFocusedObject && item->document() != oldFocusedObject->document()) 102 73 oldFocusedObject = 0; 103 74 … … 133 104 return; 134 105 g_signal_emit_by_name(axObject, "state-change", "checked", coreObject->isChecked()); 135 } else if (notification == AXSelectedChildrenChanged || notification == AXMenuListValueChanged) { 136 if (notification == AXMenuListValueChanged && coreObject->isMenuList()) { 137 g_signal_emit_by_name(axObject, "focus-event", true); 138 g_signal_emit_by_name(axObject, "state-change", "focused", true); 139 } 106 } else if (notification == AXMenuListValueChanged) { 107 if (!coreObject->isMenuList()) 108 return; 109 g_signal_emit_by_name(axObject, "focus-event", true); 110 g_signal_emit_by_name(axObject, "state-change", "focused", true); 111 } else if (notification == AXSelectedChildrenChanged) 140 112 notifyChildrenSelectionChange(coreObject); 141 }142 113 } 143 114
Note: See TracChangeset
for help on using the changeset viewer.