Title: [90186] trunk/Source/WebCore
Revision
90186
Author
[email protected]
Date
2011-06-30 16:48:22 -0700 (Thu, 30 Jun 2011)

Log Message

2011-06-30  Levi Weintraub  <[email protected]>

        Reviewed by Eric Seidel.

        Remove positionForCoordinates
        https://bugs.webkit.org/show_bug.cgi?id=63765

        Removing positionForCoordinate. We should always use positionForPoint. Also cleaning up
        RenderBox's implementation of positionForPoint.

        No new tests, there should be no functionality changes.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::stringValue): Removing dead, or at least untested, code and
        adding an ASSERT_NOT_REACHED.
        (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionForPoint): cleaning up some ugly code.
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::positionForPoint):
        * rendering/RenderObject.cpp:
        * rendering/RenderObject.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (90185 => 90186)


--- trunk/Source/WebCore/ChangeLog	2011-06-30 23:46:54 UTC (rev 90185)
+++ trunk/Source/WebCore/ChangeLog	2011-06-30 23:48:22 UTC (rev 90186)
@@ -1,3 +1,26 @@
+2011-06-30  Levi Weintraub  <[email protected]>
+
+        Reviewed by Eric Seidel.
+
+        Remove positionForCoordinates
+        https://bugs.webkit.org/show_bug.cgi?id=63765
+
+        Removing positionForCoordinate. We should always use positionForPoint. Also cleaning up
+        RenderBox's implementation of positionForPoint.
+
+        No new tests, there should be no functionality changes.
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::stringValue): Removing dead, or at least untested, code and
+        adding an ASSERT_NOT_REACHED.
+        (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::positionForPoint): cleaning up some ugly code.
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::positionForPoint):
+        * rendering/RenderObject.cpp:
+        * rendering/RenderObject.h:
+
 2011-06-30  Zhenyao Mo  <[email protected]>
 
         Reviewed by Kenneth Russell.

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (90185 => 90186)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2011-06-30 23:46:54 UTC (rev 90185)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2011-06-30 23:48:22 UTC (rev 90186)
@@ -1157,17 +1157,11 @@
         return toRenderButton(m_renderer)->text();
 
     if (isWebArea()) {
+        // FIXME: Why would a renderer exist when the Document isn't attached to a frame?
         if (m_renderer->frame())
             return String();
-        
-        // FIXME: should use startOfDocument and endOfDocument (or rangeForDocument?) here
-        VisiblePosition startVisiblePosition = m_renderer->positionForCoordinates(0, 0);
-        VisiblePosition endVisiblePosition = m_renderer->positionForCoordinates(INT_MAX, INT_MAX);
-        if (startVisiblePosition.isNull() || endVisiblePosition.isNull())
-            return String();
 
-        return plainText(makeRange(startVisiblePosition, endVisiblePosition).get(),
-                         textIteratorBehaviorForTextRange());
+        ASSERT_NOT_REACHED();
     }
     
     if (isTextControl())
@@ -2450,7 +2444,7 @@
     // iterate over the lines
     // FIXME: this is wrong when lineNumber is lineCount+1,  because nextLinePosition takes you to the
     // last offset of the last line
-    VisiblePosition visiblePos = m_renderer->document()->renderer()->positionForCoordinates(0, 0);
+    VisiblePosition visiblePos = m_renderer->document()->renderer()->positionForPoint(IntPoint());
     VisiblePosition savedVisiblePos;
     while (--lineCount) {
         savedVisiblePos = visiblePos;

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (90185 => 90186)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2011-06-30 23:46:54 UTC (rev 90185)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2011-06-30 23:48:22 UTC (rev 90186)
@@ -3108,8 +3108,8 @@
         int right = contentWidth() + borderAndPaddingWidth();
         int bottom = contentHeight() + borderAndPaddingHeight();
         
-        if (xPos < 0 || xPos > right || yPos < 0 || yPos > bottom) {
-            if (xPos <= right / 2)
+        if (point.x() < 0 || point.x() > right || point.y() < 0 || point.y() > bottom) {
+            if (point.x() <= right / 2)
                 return createVisiblePosition(firstPositionInOrBeforeNode(node()));
             return createVisiblePosition(lastPositionInOrAfterNode(node()));
         }
@@ -3118,12 +3118,10 @@
     // Pass off to the closest child.
     int minDist = INT_MAX;
     RenderBox* closestRenderer = 0;
-    int newX = xPos;
-    int newY = yPos;
-    if (isTableRow()) {
-        newX += x();
-        newY += y();
-    }
+    IntPoint adjustedPoint = point;
+    if (isTableRow())
+        adjustedPoint.move(location());
+
     for (RenderObject* renderObject = firstChild(); renderObject; renderObject = renderObject->nextSibling()) {
         if ((!renderObject->firstChild() && !renderObject->isInline() && !renderObject->isBlockFlow() )
             || renderObject->style()->visibility() != VISIBLE)
@@ -3139,10 +3137,10 @@
         int left = renderer->borderLeft() + renderer->paddingLeft() + (isTableRow() ? 0 : renderer->x());
         int right = left + renderer->contentWidth();
         
-        if (xPos <= right && xPos >= left && yPos <= top && yPos >= bottom) {
+        if (point.x() <= right && point.x() >= left && point.y() <= top && point.y() >= bottom) {
             if (renderer->isTableRow())
-                return renderer->positionForCoordinates(xPos + newX - renderer->x(), yPos + newY - renderer->y());
-            return renderer->positionForCoordinates(xPos - renderer->x(), yPos - renderer->y());
+                return renderer->positionForPoint(point + adjustedPoint - renderer->locationOffset());
+            return renderer->positionForPoint(point - renderer->locationOffset());
         }
 
         // Find the distance from (x, y) to the box.  Split the space around the box into 8 pieces
@@ -3168,11 +3166,10 @@
             else
                 cmp = IntPoint(xPos, bottom);
         }
-        
-        int x1minusx2 = cmp.x() - xPos;
-        int y1minusy2 = cmp.y() - yPos;
-        
-        int dist = x1minusx2 * x1minusx2 + y1minusy2 * y1minusy2;
+
+        IntSize difference = cmp - point;
+
+        int dist = difference.width() * difference.width() + difference.height() * difference.height();
         if (dist < minDist) {
             closestRenderer = renderer;
             minDist = dist;
@@ -3180,7 +3177,7 @@
     }
     
     if (closestRenderer)
-        return closestRenderer->positionForCoordinates(newX - closestRenderer->x(), newY - closestRenderer->y());
+        return closestRenderer->positionForPoint(adjustedPoint - closestRenderer->locationOffset());
     
     return createVisiblePosition(firstPositionInOrBeforeNode(node()));
 }

Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (90185 => 90186)


--- trunk/Source/WebCore/rendering/RenderInline.cpp	2011-06-30 23:46:54 UTC (rev 90185)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp	2011-06-30 23:48:22 UTC (rev 90186)
@@ -726,13 +726,12 @@
     }
 
     // Translate the coords from the pre-anonymous block to the post-anonymous block.
-    int parentBlockX = cb->x() + point.x();
-    int parentBlockY = cb->y() + point.y();
+    IntPoint parentBlockPoint = cb->location() + point;  
     RenderBoxModelObject* c = continuation();
     while (c) {
         RenderBox* contBlock = c->isInline() ? c->containingBlock() : toRenderBlock(c);
         if (c->isInline() || c->firstChild())
-            return c->positionForCoordinates(parentBlockX - contBlock->x(), parentBlockY - contBlock->y());
+            return c->positionForPoint(parentBlockPoint - contBlock->locationOffset());
         c = toRenderBlock(c)->inlineElementContinuation();
     }
     

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (90185 => 90186)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2011-06-30 23:46:54 UTC (rev 90185)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2011-06-30 23:48:22 UTC (rev 90186)
@@ -2122,11 +2122,6 @@
     arena->free(*(size_t*)base, base);
 }
 
-VisiblePosition RenderObject::positionForCoordinates(int x, int y)
-{
-    return positionForPoint(IntPoint(x, y));
-}
-
 VisiblePosition RenderObject::positionForPoint(const IntPoint&)
 {
     return createVisiblePosition(caretMinOffset(), DOWNSTREAM);

Modified: trunk/Source/WebCore/rendering/RenderObject.h (90185 => 90186)


--- trunk/Source/WebCore/rendering/RenderObject.h	2011-06-30 23:46:54 UTC (rev 90185)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2011-06-30 23:48:22 UTC (rev 90186)
@@ -552,7 +552,6 @@
     virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const IntPoint& pointInContainer, const IntPoint& accumulatedOffset, HitTestAction);
     virtual void updateHitTestResult(HitTestResult&, const IntPoint&);
 
-    VisiblePosition positionForCoordinates(int x, int y);
     virtual VisiblePosition positionForPoint(const IntPoint&);
     VisiblePosition createVisiblePosition(int offset, EAffinity);
     VisiblePosition createVisiblePosition(const Position&);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to