Diff
Modified: trunk/Source/WebCore/ChangeLog (88250 => 88251)
--- trunk/Source/WebCore/ChangeLog 2011-06-07 18:56:41 UTC (rev 88250)
+++ trunk/Source/WebCore/ChangeLog 2011-06-07 18:58:22 UTC (rev 88251)
@@ -1,3 +1,20 @@
+2011-06-07 Emil A Eklund <[email protected]>
+
+ Reviewed by Eric Seidel.
+
+ Convert RenderTextControl::hitInnerTextElement to IntPoint
+ https://bugs.webkit.org/show_bug.cgi?id=62167
+
+ Covered by existing tests.
+
+ * rendering/RenderTextControl.cpp:
+ (WebCore::RenderTextControl::hitInnerTextElement):
+ * rendering/RenderTextControl.h:
+ * rendering/RenderTextControlMultiLine.cpp:
+ (WebCore::RenderTextControlMultiLine::nodeAtPoint):
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::nodeAtPoint):
+
2011-06-07 Levi Weintraub <[email protected]>
Reviewed by Eric Seidel.
Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (88250 => 88251)
--- trunk/Source/WebCore/rendering/RenderTextControl.cpp 2011-06-07 18:56:41 UTC (rev 88250)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp 2011-06-07 18:58:22 UTC (rev 88251)
@@ -449,13 +449,13 @@
RenderBlock::computeLogicalHeight();
}
-void RenderTextControl::hitInnerTextElement(HitTestResult& result, const IntPoint& pointInContainer, int tx, int ty)
+void RenderTextControl::hitInnerTextElement(HitTestResult& result, const IntPoint& pointInContainer, const IntPoint& accumulatedOffset)
{
+ IntPoint adjustedLocation = accumulatedOffset + location();
HTMLElement* innerText = innerTextElement();
result.setInnerNode(innerText);
result.setInnerNonSharedNode(innerText);
- result.setLocalPoint(pointInContainer -
- IntSize(tx + x() + innerText->renderBox()->x(), ty + y() + innerText->renderBox()->y()));
+ result.setLocalPoint(pointInContainer - toSize(adjustedLocation + innerText->renderBox()->location()));
}
void RenderTextControl::forwardEvent(Event* event)
Modified: trunk/Source/WebCore/rendering/RenderTextControl.h (88250 => 88251)
--- trunk/Source/WebCore/rendering/RenderTextControl.h 2011-06-07 18:56:41 UTC (rev 88250)
+++ trunk/Source/WebCore/rendering/RenderTextControl.h 2011-06-07 18:58:22 UTC (rev 88251)
@@ -63,7 +63,7 @@
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
- void hitInnerTextElement(HitTestResult&, const IntPoint& pointInContainer, int tx, int ty);
+ void hitInnerTextElement(HitTestResult&, const IntPoint& pointInContainer, const IntPoint& accumulatedOffset);
void forwardEvent(Event*);
int textBlockWidth() const;
Modified: trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp (88250 => 88251)
--- trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp 2011-06-07 18:56:41 UTC (rev 88250)
+++ trunk/Source/WebCore/rendering/RenderTextControlMultiLine.cpp 2011-06-07 18:58:22 UTC (rev 88251)
@@ -70,7 +70,7 @@
return false;
if (result.innerNode() == node() || result.innerNode() == innerTextElement())
- hitInnerTextElement(result, pointInContainer, tx, ty);
+ hitInnerTextElement(result, pointInContainer, IntPoint(tx, ty));
return true;
}
Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp (88250 => 88251)
--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp 2011-06-07 18:56:41 UTC (rev 88250)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp 2011-06-07 18:58:22 UTC (rev 88251)
@@ -342,7 +342,7 @@
// and if we hit our node (e.g. we're over the border or padding), also say that we hit the
// inner text element so that it gains focus.
if (result.innerNode()->isDescendantOf(innerTextElement()) || result.innerNode() == node())
- hitInnerTextElement(result, pointInContainer, tx, ty);
+ hitInnerTextElement(result, pointInContainer, IntPoint(tx, ty));
// If we found a spin button, we're done.
HTMLElement* innerSpinButton = innerSpinButtonElement();