Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(641)

Unified Diff: third_party/WebKit/Source/modules/accessibility/AXObject.cpp

Issue 2387883002: Use float for scroll offset. (Closed)
Patch Set: Fix README.md Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/accessibility/AXObject.cpp
diff --git a/third_party/WebKit/Source/modules/accessibility/AXObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
index 400fc11edb309326ab4199bbd5385094a973d87d..b34294626b6c8f78ba3ad5acfb69fbfbcd6c8c21 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
@@ -1213,7 +1213,8 @@ IntPoint AXObject::scrollOffset() const {
if (!area)
return IntPoint();
- return IntPoint(area->scrollPosition().x(), area->scrollPosition().y());
+ return IntPoint(area->scrollOffsetInt().width(),
+ area->scrollOffsetInt().height());
}
IntPoint AXObject::minimumScrollOffset() const {
@@ -1221,8 +1222,8 @@ IntPoint AXObject::minimumScrollOffset() const {
if (!area)
return IntPoint();
- return IntPoint(area->minimumScrollPosition().x(),
- area->minimumScrollPosition().y());
+ return IntPoint(area->minimumScrollOffsetInt().width(),
+ area->minimumScrollOffsetInt().height());
}
IntPoint AXObject::maximumScrollOffset() const {
@@ -1230,8 +1231,8 @@ IntPoint AXObject::maximumScrollOffset() const {
if (!area)
return IntPoint();
- return IntPoint(area->maximumScrollPosition().x(),
- area->maximumScrollPosition().y());
+ return IntPoint(area->maximumScrollOffsetInt().width(),
+ area->maximumScrollOffsetInt().height());
}
void AXObject::setScrollOffset(const IntPoint& offset) const {
@@ -1240,8 +1241,8 @@ void AXObject::setScrollOffset(const IntPoint& offset) const {
return;
// TODO(bokan): This should potentially be a UserScroll.
- area->setScrollPosition(DoublePoint(offset.x(), offset.y()),
- ProgrammaticScroll);
+ area->setScrollOffset(ScrollOffset(offset.x(), offset.y()),
+ ProgrammaticScroll);
}
void AXObject::getRelativeBounds(AXObject** outContainer,
@@ -1301,9 +1302,8 @@ void AXObject::getRelativeBounds(AXObject** outContainer,
// bounds to be relative to the *unscrolled* position of the container object.
ScrollableArea* scrollableArea = container->getScrollableAreaIfScrollable();
if (scrollableArea && !container->isWebArea()) {
- IntPoint scrollPosition = scrollableArea->scrollPosition();
- outBoundsInContainer.move(
- FloatSize(scrollPosition.x(), scrollPosition.y()));
+ ScrollOffset scrollOffset = scrollableArea->scrollOffset();
+ outBoundsInContainer.move(scrollOffset);
}
// Compute the transform between the container's coordinate space and this
@@ -1469,25 +1469,25 @@ void AXObject::scrollToMakeVisibleWithSubFocus(const IntRect& subfocus) const {
return;
IntRect objectRect = pixelSnappedIntRect(getBoundsInFrameCoordinates());
- IntPoint scrollPosition = scrollableArea->scrollPosition();
+ IntSize scrollOffset = scrollableArea->scrollOffsetInt();
IntRect scrollVisibleRect = scrollableArea->visibleContentRect();
// Convert the object rect into local coordinates.
if (!scrollParent->isWebArea()) {
- objectRect.moveBy(scrollPosition);
+ objectRect.moveBy(IntPoint(scrollOffset));
objectRect.moveBy(
-pixelSnappedIntRect(scrollParent->getBoundsInFrameCoordinates())
.location());
}
- int desiredX =
- computeBestScrollOffset(scrollPosition.x(), objectRect.x() + subfocus.x(),
- objectRect.x() + subfocus.maxX(), objectRect.x(),
- objectRect.maxX(), 0, scrollVisibleRect.width());
- int desiredY =
- computeBestScrollOffset(scrollPosition.y(), objectRect.y() + subfocus.y(),
- objectRect.y() + subfocus.maxY(), objectRect.y(),
- objectRect.maxY(), 0, scrollVisibleRect.height());
+ int desiredX = computeBestScrollOffset(
+ scrollOffset.width(), objectRect.x() + subfocus.x(),
+ objectRect.x() + subfocus.maxX(), objectRect.x(), objectRect.maxX(), 0,
+ scrollVisibleRect.width());
+ int desiredY = computeBestScrollOffset(
+ scrollOffset.height(), objectRect.y() + subfocus.y(),
+ objectRect.y() + subfocus.maxY(), objectRect.y(), objectRect.maxY(), 0,
+ scrollVisibleRect.height());
scrollParent->setScrollOffset(IntPoint(desiredX, desiredY));
@@ -1532,12 +1532,12 @@ void AXObject::scrollToGlobalPoint(const IntPoint& globalPoint) const {
inner->parentObject()->getBoundsInFrameCoordinates())
: pixelSnappedIntRect(inner->getBoundsInFrameCoordinates());
IntRect objectRect = innerRect;
- IntPoint scrollPosition = scrollableArea->scrollPosition();
+ IntSize scrollOffset = scrollableArea->scrollOffsetInt();
// Convert the object rect into local coordinates.
objectRect.move(offsetX, offsetY);
if (!outer->isWebArea())
- objectRect.move(scrollPosition.x(), scrollPosition.y());
+ objectRect.move(scrollOffset.width(), scrollOffset.height());
int desiredX = computeBestScrollOffset(0, objectRect.x(), objectRect.maxX(),
objectRect.x(), objectRect.maxX(),
@@ -1551,11 +1551,11 @@ void AXObject::scrollToGlobalPoint(const IntPoint& globalPoint) const {
// If outer object we just scrolled is a web area (frame) but the inner
// object is not, keep track of the coordinate transformation to apply to
// future nested calculations.
- scrollPosition = scrollableArea->scrollPosition();
- offsetX -= (scrollPosition.x() + point.x());
- offsetY -= (scrollPosition.y() + point.y());
- point.move(scrollPosition.x() - innerRect.x(),
- scrollPosition.y() - innerRect.y());
+ scrollOffset = scrollableArea->scrollOffsetInt();
+ offsetX -= (scrollOffset.width() + point.x());
+ offsetY -= (scrollOffset.height() + point.y());
+ point.move(scrollOffset.width() - innerRect.width(),
+ scrollOffset.height() - innerRect.y());
} else if (inner->isWebArea()) {
// Otherwise, if the inner object is a web area, reset the coordinate
// transformation.

Powered by Google App Engine
This is Rietveld 408576698