| Index: Source/core/accessibility/AccessibilityObject.cpp
|
| diff --git a/Source/core/accessibility/AccessibilityObject.cpp b/Source/core/accessibility/AccessibilityObject.cpp
|
| index 89f493bcabf888e4dce21bd512383207f5322f1c..f6e32ba9b7104b5c5467a6218b5613549d676396 100644
|
| --- a/Source/core/accessibility/AccessibilityObject.cpp
|
| +++ b/Source/core/accessibility/AccessibilityObject.cpp
|
| @@ -353,7 +353,7 @@ int AccessibilityObject::blockquoteLevel() const
|
| }
|
|
|
| // Lacking concrete evidence of orientation, horizontal means width > height. vertical is height > width;
|
| -AccessibilityOrientation AccessibilityObject::orientation() const
|
| +AccessibilityOrientation AccessibilityObject::orientation()
|
| {
|
| LayoutRect bounds = elementRect();
|
| if (bounds.size().width() > bounds.size().height())
|
| @@ -570,6 +570,14 @@ bool AccessibilityObject::isInsideARIALiveRegion() const
|
| return false;
|
| }
|
|
|
| +void AccessibilityObject::markCachedElementRectDirty()
|
| +{
|
| + AccessibilityChildrenVector axChildren = children();
|
| + for (unsigned i = 0; i < axChildren.size(); ++i) {
|
| + axChildren[i].get()->markCachedElementRectDirty();
|
| + }
|
| +}
|
| +
|
| IntPoint AccessibilityObject::clickPoint()
|
| {
|
| LayoutRect rect = elementRect();
|
| @@ -598,7 +606,7 @@ IntRect AccessibilityObject::boundingBoxForQuads(RenderObject* obj, const Vector
|
| return result;
|
| }
|
|
|
| -AccessibilityObject* AccessibilityObject::elementAccessibilityHitTest(const IntPoint& point) const
|
| +AccessibilityObject* AccessibilityObject::elementAccessibilityHitTest(const IntPoint& point)
|
| {
|
| // Send the hit test back into the sub-frame if necessary.
|
| if (isAttachment()) {
|
| @@ -785,9 +793,9 @@ bool AccessibilityObject::press() const
|
| return true;
|
| }
|
|
|
| -void AccessibilityObject::scrollToMakeVisible() const
|
| +void AccessibilityObject::scrollToMakeVisible()
|
| {
|
| - IntRect objectRect = pixelSnappedIntRect(boundingBoxRect());
|
| + IntRect objectRect = pixelSnappedIntRect(elementRect());
|
| objectRect.setLocation(IntPoint());
|
| scrollToMakeVisibleWithSubFocus(objectRect);
|
| }
|
| @@ -864,7 +872,7 @@ static int computeBestScrollOffset(int currentScrollOffset,
|
| return currentScrollOffset;
|
| }
|
|
|
| -void AccessibilityObject::scrollToMakeVisibleWithSubFocus(const IntRect& subfocus) const
|
| +void AccessibilityObject::scrollToMakeVisibleWithSubFocus(const IntRect& subfocus)
|
| {
|
| // Search up the parent chain until we find the first one that's scrollable.
|
| AccessibilityObject* scrollParent = parentObject();
|
| @@ -875,7 +883,7 @@ void AccessibilityObject::scrollToMakeVisibleWithSubFocus(const IntRect& subfocu
|
| if (!scrollableArea)
|
| return;
|
|
|
| - LayoutRect objectRect = boundingBoxRect();
|
| + LayoutRect objectRect = elementRect();
|
| IntPoint scrollPosition = scrollableArea->scrollPosition();
|
| IntRect scrollVisibleRect = scrollableArea->visibleContentRect();
|
|
|
| @@ -897,11 +905,11 @@ void AccessibilityObject::scrollToMakeVisibleWithSubFocus(const IntRect& subfocu
|
| scrollParent->scrollToMakeVisible();
|
| }
|
|
|
| -void AccessibilityObject::scrollToGlobalPoint(const IntPoint& globalPoint) const
|
| +void AccessibilityObject::scrollToGlobalPoint(const IntPoint& globalPoint)
|
| {
|
| // Search up the parent chain and create a vector of all scrollable parent objects
|
| // and ending with this object itself.
|
| - Vector<const AccessibilityObject*> objects;
|
| + Vector<AccessibilityObject*> objects;
|
| AccessibilityObject* parentObject;
|
| for (parentObject = this->parentObject(); parentObject; parentObject = parentObject->parentObject()) {
|
| if (parentObject->getScrollableAreaIfScrollable())
|
| @@ -915,12 +923,12 @@ void AccessibilityObject::scrollToGlobalPoint(const IntPoint& globalPoint) const
|
| IntPoint point = globalPoint;
|
| size_t levels = objects.size() - 1;
|
| for (size_t i = 0; i < levels; i++) {
|
| - const AccessibilityObject* outer = objects[i];
|
| - const AccessibilityObject* inner = objects[i + 1];
|
| + AccessibilityObject* outer = objects[i];
|
| + AccessibilityObject* inner = objects[i + 1];
|
|
|
| ScrollableArea* scrollableArea = outer->getScrollableAreaIfScrollable();
|
|
|
| - LayoutRect innerRect = inner->isAccessibilityScrollView() ? inner->parentObject()->boundingBoxRect() : inner->boundingBoxRect();
|
| + LayoutRect innerRect = inner->isAccessibilityScrollView() ? inner->parentObject()->elementRect() : inner->elementRect();
|
| LayoutRect objectRect = innerRect;
|
| IntPoint scrollPosition = scrollableArea->scrollPosition();
|
|
|
|
|