Chromium Code Reviews| Index: third_party/WebKit/Source/modules/accessibility/AXSpinButton.cpp |
| diff --git a/third_party/WebKit/Source/modules/accessibility/AXSpinButton.cpp b/third_party/WebKit/Source/modules/accessibility/AXSpinButton.cpp |
| index 5cf60590411787c1c94f29353541e426257a74a1..c387f7fae34f7825cf0567d6f40f74084caa1279 100644 |
| --- a/third_party/WebKit/Source/modules/accessibility/AXSpinButton.cpp |
| +++ b/third_party/WebKit/Source/modules/accessibility/AXSpinButton.cpp |
| @@ -52,12 +52,12 @@ DEFINE_TRACE(AXSpinButton) |
| AXMockObject::trace(visitor); |
| } |
| -LayoutRect AXSpinButton::elementRect() const |
| +LayoutObject* AXSpinButton::layoutObjectForRelativeBounds() const |
| { |
| if (!m_spinButtonElement || !m_spinButtonElement->layoutObject()) |
| - return LayoutRect(); |
| + return nullptr; |
| - return LayoutRect(m_spinButtonElement->layoutObject()->absoluteElementBoundingBoxRect()); |
| + return m_spinButtonElement->layoutObject(); |
| } |
| void AXSpinButton::detach() |
| @@ -115,20 +115,26 @@ AXSpinButtonPart* AXSpinButtonPart::create(AXObjectCacheImpl& axObjectCache) |
| return new AXSpinButtonPart(axObjectCache); |
| } |
| -LayoutRect AXSpinButtonPart::elementRect() const |
| +void AXSpinButtonPart::getRelativeBounds(AXObject** outContainer, FloatRect& outBoundsInContainer, SkMatrix44& outContainerTransform) const |
| { |
| + *outContainer = nullptr; |
| + outBoundsInContainer = FloatRect(); |
| + outContainerTransform.setIdentity(); |
| + |
| + if (!parentObject()) |
| + return; |
| + |
| // FIXME: This logic should exist in the layout tree or elsewhere, but there is no |
|
aboxhall
2016/08/26 22:44:46
Is this FIXME still current?
dmazzoni
2016/08/29 23:17:06
Yes - we're just dividing the height in half to ge
|
| // relationship that exists that can be queried. |
| - |
| - LayoutRect parentRect = parentObject()->elementRect(); |
| + parentObject()->getRelativeBounds(outContainer, outBoundsInContainer, outContainerTransform); |
| + outBoundsInContainer = FloatRect(0, 0, outBoundsInContainer.width(), outBoundsInContainer.height()); |
| if (m_isIncrementor) { |
| - parentRect.setHeight(parentRect.height() / 2); |
| + outBoundsInContainer.setHeight(outBoundsInContainer.height() / 2); |
| } else { |
| - parentRect.setY(parentRect.y() + parentRect.height() / 2); |
| - parentRect.setHeight(parentRect.height() / 2); |
| + outBoundsInContainer.setY(outBoundsInContainer.y() + outBoundsInContainer.height() / 2); |
| + outBoundsInContainer.setHeight(outBoundsInContainer.height() / 2); |
| } |
| - |
| - return parentRect; |
| + *outContainer = parentObject(); |
| } |
| bool AXSpinButtonPart::press() const |