Changeset 185974 in webkit
- Timestamp:
- Jun 25, 2015 6:00:21 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r185966 r185974 1 2015-06-25 Doug Russell <d_russell@apple.com> 2 3 Bug 146300 AX: AccessibilityObject focus events that don't cause a selection 4 change can leave m_isSynchronizingSelection set to true 5 https://bugs.webkit.org/show_bug.cgi?id=146300 6 7 Reviewed by Chris Fleizach. 8 9 Added a clearTextSelectionIntent() convenience function to be used after any 10 event that can, but isn't guaranteed to result in a selection change. Matches 11 calls to setTextSelectionIntent() convenience function. 12 Added support for tests listening for focus change notifications. 13 14 * platform/mac/accessibility/focus-setting-selection-syncronizing-not-clearing-expected.txt: Added. 15 * platform/mac/accessibility/focus-setting-selection-syncronizing-not-clearing.html: Added. 16 1 17 2015-06-25 Tim Horton <timothy_horton@apple.com> 2 18 -
trunk/Source/WebCore/ChangeLog
r185973 r185974 1 2015-06-25 Doug Russell <d_russell@apple.com> 2 3 Bug 146300 AX: AccessibilityObject focus events that don't cause a selection 4 change can leave m_isSynchronizingSelection set to true 5 https://bugs.webkit.org/show_bug.cgi?id=146300 6 7 Reviewed by Chris Fleizach. 8 9 Added a clearTextSelectionIntent() convenience function to be used after any 10 event that can, but isn't guaranteed to result in a selection change. Matches 11 calls to setTextSelectionIntent() convenience function. 12 Added support for tests listening for focus change notifications. 13 14 Test: platform/mac/accessibility/focus-setting-selection-syncronizing-not-clearing.html 15 16 * accessibility/AccessibilityRenderObject.cpp: 17 (WebCore::clearTextSelectionIntent): 18 (WebCore::AccessibilityRenderObject::setSelectedTextRange): 19 (WebCore::AccessibilityRenderObject::setFocused): 20 (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): 21 * accessibility/mac/AXObjectCacheMac.mm: 22 (WebCore::AXObjectCache::platformHandleFocusedUIElementChanged): 23 1 24 2015-06-25 Alex Christensen <achristensen@webkit.org> 2 25 -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
r185828 r185974 1499 1499 } 1500 1500 1501 static void setTextSelectionIntent(const AccessibilityRenderObject& renderObject, AXTextStateChangeType type) 1502 { 1503 AXObjectCache* cache = renderObject.axObjectCache(); 1501 static void setTextSelectionIntent(AXObjectCache* cache, AXTextStateChangeType type) 1502 { 1504 1503 if (!cache) 1505 1504 return; … … 1509 1508 } 1510 1509 1510 static void clearTextSelectionIntent(AXObjectCache* cache) 1511 { 1512 if (!cache) 1513 return; 1514 cache->setTextSelectionIntent(AXTextStateChangeIntent()); 1515 cache->setIsSynchronizingSelection(false); 1516 } 1517 1511 1518 void AccessibilityRenderObject::setSelectedTextRange(const PlainTextRange& range) 1512 1519 { 1513 1520 if (isNativeTextControl()) { 1514 setTextSelectionIntent( *this, range.length ? AXTextStateChangeTypeSelectionExtend : AXTextStateChangeTypeSelectionMove);1521 setTextSelectionIntent(axObjectCache(), range.length ? AXTextStateChangeTypeSelectionExtend : AXTextStateChangeTypeSelectionMove); 1515 1522 HTMLTextFormControlElement& textControl = downcast<RenderTextControl>(*m_renderer).textFormControlElement(); 1516 1523 textControl.setSelectionRange(range.start, range.start + range.length); 1524 clearTextSelectionIntent(axObjectCache()); 1517 1525 return; 1518 1526 } … … 1520 1528 Node* node = m_renderer->node(); 1521 1529 VisibleSelection newSelection(Position(node, range.start, Position::PositionIsOffsetInAnchor), Position(node, range.start + range.length, Position::PositionIsOffsetInAnchor), DOWNSTREAM); 1522 setTextSelectionIntent( *this, range.length ? AXTextStateChangeTypeSelectionExtend : AXTextStateChangeTypeSelectionMove);1530 setTextSelectionIntent(axObjectCache(), range.length ? AXTextStateChangeTypeSelectionExtend : AXTextStateChangeTypeSelectionMove); 1523 1531 m_renderer->frame().selection().setSelection(newSelection, FrameSelection::defaultSetSelectionOptions()); 1532 clearTextSelectionIntent(axObjectCache()); 1524 1533 } 1525 1534 … … 1675 1684 document->setFocusedElement(nullptr); 1676 1685 1677 setTextSelectionIntent( *this, AXTextStateChangeTypeSelectionMove);1686 setTextSelectionIntent(axObjectCache(), AXTextStateChangeTypeSelectionMove); 1678 1687 downcast<Element>(*node).focus(); 1688 clearTextSelectionIntent(axObjectCache()); 1679 1689 } 1680 1690 … … 1990 2000 // make selection and tell the document to use it. if it's zero length, then move to that position 1991 2001 if (range.start == range.end) { 1992 setTextSelectionIntent( *this, AXTextStateChangeTypeSelectionMove);2002 setTextSelectionIntent(axObjectCache(), AXTextStateChangeTypeSelectionMove); 1993 2003 m_renderer->frame().selection().moveTo(range.start, UserTriggered); 2004 clearTextSelectionIntent(axObjectCache()); 1994 2005 } 1995 2006 else { 1996 setTextSelectionIntent( *this, AXTextStateChangeTypeSelectionExtend);2007 setTextSelectionIntent(axObjectCache(), AXTextStateChangeTypeSelectionExtend); 1997 2008 VisibleSelection newSelection = VisibleSelection(range.start, range.end); 1998 2009 m_renderer->frame().selection().setSelection(newSelection, FrameSelection::defaultSetSelectionOptions()); 2010 clearTextSelectionIntent(axObjectCache()); 1999 2011 } 2000 2012 } -
trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
r183783 r185974 334 334 { 335 335 wkAccessibilityHandleFocusChanged(); 336 // AXFocusChanged is a test specific notification name and not something a real AT will be listening for 337 if (UNLIKELY(axShouldRepostNotificationsForTests)) 338 [rootWebArea()->wrapper() accessibilityPostedNotification:@"AXFocusChanged" userInfo:nil]; 336 339 } 337 340
Note: See TracChangeset
for help on using the changeset viewer.