| Index: Source/core/layout/LayoutTextControlSingleLine.cpp
|
| diff --git a/Source/core/rendering/RenderTextControlSingleLine.cpp b/Source/core/layout/LayoutTextControlSingleLine.cpp
|
| similarity index 89%
|
| rename from Source/core/rendering/RenderTextControlSingleLine.cpp
|
| rename to Source/core/layout/LayoutTextControlSingleLine.cpp
|
| index 130f24bb49404496653a0901e1ad166025a5475b..6ce2df45e26adbf952ace6fd180fd9ecdba41562 100644
|
| --- a/Source/core/rendering/RenderTextControlSingleLine.cpp
|
| +++ b/Source/core/layout/LayoutTextControlSingleLine.cpp
|
| @@ -22,7 +22,7 @@
|
| */
|
|
|
| #include "config.h"
|
| -#include "core/rendering/RenderTextControlSingleLine.h"
|
| +#include "core/layout/LayoutTextControlSingleLine.h"
|
|
|
| #include "core/CSSValueKeywords.h"
|
| #include "core/InputTypeNames.h"
|
| @@ -40,35 +40,35 @@ namespace blink {
|
|
|
| using namespace HTMLNames;
|
|
|
| -RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement* element)
|
| - : RenderTextControl(element)
|
| +LayoutTextControlSingleLine::LayoutTextControlSingleLine(HTMLInputElement* element)
|
| + : LayoutTextControl(element)
|
| , m_shouldDrawCapsLockIndicator(false)
|
| , m_desiredInnerEditorLogicalHeight(-1)
|
| {
|
| }
|
|
|
| -RenderTextControlSingleLine::~RenderTextControlSingleLine()
|
| +LayoutTextControlSingleLine::~LayoutTextControlSingleLine()
|
| {
|
| }
|
|
|
| -inline Element* RenderTextControlSingleLine::containerElement() const
|
| +inline Element* LayoutTextControlSingleLine::containerElement() const
|
| {
|
| return inputElement()->userAgentShadowRoot()->getElementById(ShadowElementNames::textFieldContainer());
|
| }
|
|
|
| -inline Element* RenderTextControlSingleLine::editingViewPortElement() const
|
| +inline Element* LayoutTextControlSingleLine::editingViewPortElement() const
|
| {
|
| return inputElement()->userAgentShadowRoot()->getElementById(ShadowElementNames::editingViewPort());
|
| }
|
|
|
| -inline HTMLElement* RenderTextControlSingleLine::innerSpinButtonElement() const
|
| +inline HTMLElement* LayoutTextControlSingleLine::innerSpinButtonElement() const
|
| {
|
| return toHTMLElement(inputElement()->userAgentShadowRoot()->getElementById(ShadowElementNames::spinButton()));
|
| }
|
|
|
| -void RenderTextControlSingleLine::paint(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
| +void LayoutTextControlSingleLine::paint(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
| {
|
| - RenderTextControl::paint(paintInfo, paintOffset);
|
| + LayoutTextControl::paint(paintInfo, paintOffset);
|
|
|
| if (paintInfo.phase == PaintPhaseBlockBackground && m_shouldDrawCapsLockIndicator) {
|
| LayoutRect contentsRect = contentBoxRect();
|
| @@ -85,12 +85,12 @@ void RenderTextControlSingleLine::paint(const PaintInfo& paintInfo, const Layout
|
| }
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::computeLogicalHeightLimit() const
|
| +LayoutUnit LayoutTextControlSingleLine::computeLogicalHeightLimit() const
|
| {
|
| return containerElement() ? contentLogicalHeight() : logicalHeight();
|
| }
|
|
|
| -void RenderTextControlSingleLine::layout()
|
| +void LayoutTextControlSingleLine::layout()
|
| {
|
| SubtreeLayoutScope layoutScope(*this);
|
|
|
| @@ -152,8 +152,9 @@ void RenderTextControlSingleLine::layout()
|
| } else if (containerRenderer->logicalHeight() < contentLogicalHeight()) {
|
| containerRenderer->style()->setLogicalHeight(Length(contentLogicalHeight(), Fixed));
|
| layoutScope.setNeedsLayout(this);
|
| - } else
|
| + } else {
|
| containerRenderer->style()->setLogicalHeight(Length(containerLogicalHeight, Fixed));
|
| + }
|
| }
|
|
|
| // If we need another layout pass, we have changed one of children's height so we need to relayout them.
|
| @@ -164,8 +165,9 @@ void RenderTextControlSingleLine::layout()
|
| if (!container && innerEditorRenderer && innerEditorRenderer->size().height() != contentLogicalHeight()) {
|
| LayoutUnit logicalHeightDiff = innerEditorRenderer->logicalHeight() - contentLogicalHeight();
|
| innerEditorRenderer->setLogicalTop(innerEditorRenderer->logicalTop() - (logicalHeightDiff / 2 + layoutMod(logicalHeightDiff, 2)));
|
| - } else
|
| + } else {
|
| centerContainerIfNeeded(containerRenderer);
|
| + }
|
|
|
| HTMLElement* placeholderElement = inputElement()->placeholderElement();
|
| if (RenderBox* placeholderBox = placeholderElement ? placeholderElement->renderBox() : 0) {
|
| @@ -193,9 +195,9 @@ void RenderTextControlSingleLine::layout()
|
| }
|
| }
|
|
|
| -bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction)
|
| +bool LayoutTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction)
|
| {
|
| - if (!RenderTextControl::nodeAtPoint(request, result, locationInContainer, accumulatedOffset, hitTestAction))
|
| + if (!LayoutTextControl::nodeAtPoint(request, result, locationInContainer, accumulatedOffset, hitTestAction))
|
| return false;
|
|
|
| // Say that we hit the inner text element if
|
| @@ -216,10 +218,10 @@ bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, Hit
|
| return true;
|
| }
|
|
|
| -void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const LayoutStyle* oldStyle)
|
| +void LayoutTextControlSingleLine::styleDidChange(StyleDifference diff, const LayoutStyle* oldStyle)
|
| {
|
| m_desiredInnerEditorLogicalHeight = -1;
|
| - RenderTextControl::styleDidChange(diff, oldStyle);
|
| + LayoutTextControl::styleDidChange(diff, oldStyle);
|
|
|
| // We may have set the width and the height in the old style in layout().
|
| // Reset them now to avoid getting a spurious layout hint.
|
| @@ -241,7 +243,7 @@ void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const Lay
|
| setHasOverflowClip(false);
|
| }
|
|
|
| -void RenderTextControlSingleLine::capsLockStateMayHaveChanged()
|
| +void LayoutTextControlSingleLine::capsLockStateMayHaveChanged()
|
| {
|
| if (!node())
|
| return;
|
| @@ -262,13 +264,13 @@ void RenderTextControlSingleLine::capsLockStateMayHaveChanged()
|
| }
|
| }
|
|
|
| -bool RenderTextControlSingleLine::hasControlClip() const
|
| +bool LayoutTextControlSingleLine::hasControlClip() const
|
| {
|
| // Apply control clip for text fields with decorations.
|
| return !!containerElement();
|
| }
|
|
|
| -LayoutRect RenderTextControlSingleLine::controlClipRect(const LayoutPoint& additionalOffset) const
|
| +LayoutRect LayoutTextControlSingleLine::controlClipRect(const LayoutPoint& additionalOffset) const
|
| {
|
| ASSERT(hasControlClip());
|
| LayoutRect clipRect = contentBoxRect();
|
| @@ -278,7 +280,7 @@ LayoutRect RenderTextControlSingleLine::controlClipRect(const LayoutPoint& addit
|
| return clipRect;
|
| }
|
|
|
| -float RenderTextControlSingleLine::getAvgCharWidth(AtomicString family)
|
| +float LayoutTextControlSingleLine::getAvgCharWidth(AtomicString family)
|
| {
|
| // Since Lucida Grande is the default font, we want this to match the width
|
| // of MS Shell Dlg, the default font for textareas in Firefox, Safari Win and
|
| @@ -287,10 +289,10 @@ float RenderTextControlSingleLine::getAvgCharWidth(AtomicString family)
|
| if (family == "Lucida Grande")
|
| return scaleEmToUnits(901);
|
|
|
| - return RenderTextControl::getAvgCharWidth(family);
|
| + return LayoutTextControl::getAvgCharWidth(family);
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::preferredContentLogicalWidth(float charWidth) const
|
| +LayoutUnit LayoutTextControlSingleLine::preferredContentLogicalWidth(float charWidth) const
|
| {
|
| int factor;
|
| bool includesDecoration = inputElement()->sizeShouldIncludeDecoration(factor);
|
| @@ -327,12 +329,12 @@ LayoutUnit RenderTextControlSingleLine::preferredContentLogicalWidth(float charW
|
| return result;
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::computeControlLogicalHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const
|
| +LayoutUnit LayoutTextControlSingleLine::computeControlLogicalHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const
|
| {
|
| return lineHeight + nonContentHeight;
|
| }
|
|
|
| -PassRefPtr<LayoutStyle> RenderTextControlSingleLine::createInnerEditorStyle(const LayoutStyle& startStyle) const
|
| +PassRefPtr<LayoutStyle> LayoutTextControlSingleLine::createInnerEditorStyle(const LayoutStyle& startStyle) const
|
| {
|
| RefPtr<LayoutStyle> textBlockStyle = LayoutStyle::create();
|
| textBlockStyle->inheritFrom(startStyle);
|
| @@ -359,12 +361,12 @@ PassRefPtr<LayoutStyle> RenderTextControlSingleLine::createInnerEditorStyle(cons
|
| return textBlockStyle.release();
|
| }
|
|
|
| -bool RenderTextControlSingleLine::textShouldBeTruncated() const
|
| +bool LayoutTextControlSingleLine::textShouldBeTruncated() const
|
| {
|
| return document().focusedElement() != node() && style()->textOverflow() == TextOverflowEllipsis;
|
| }
|
|
|
| -void RenderTextControlSingleLine::autoscroll(const IntPoint& position)
|
| +void LayoutTextControlSingleLine::autoscroll(const IntPoint& position)
|
| {
|
| RenderBox* renderer = innerEditorElement()->renderBox();
|
| if (!renderer)
|
| @@ -373,7 +375,7 @@ void RenderTextControlSingleLine::autoscroll(const IntPoint& position)
|
| renderer->autoscroll(position);
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::scrollWidth() const
|
| +LayoutUnit LayoutTextControlSingleLine::scrollWidth() const
|
| {
|
| if (RenderBox* inner = innerEditorElement() ? innerEditorElement()->renderBox() : 0) {
|
| // Adjust scrollWidth to inculde input element horizontal paddings and
|
| @@ -384,7 +386,7 @@ LayoutUnit RenderTextControlSingleLine::scrollWidth() const
|
| return RenderBlockFlow::scrollWidth();
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::scrollHeight() const
|
| +LayoutUnit LayoutTextControlSingleLine::scrollHeight() const
|
| {
|
| if (RenderBox* inner = innerEditorElement() ? innerEditorElement()->renderBox() : 0) {
|
| // Adjust scrollHeight to include input element vertical paddings and
|
| @@ -395,33 +397,33 @@ LayoutUnit RenderTextControlSingleLine::scrollHeight() const
|
| return RenderBlockFlow::scrollHeight();
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::scrollLeft() const
|
| +LayoutUnit LayoutTextControlSingleLine::scrollLeft() const
|
| {
|
| if (innerEditorElement())
|
| return innerEditorElement()->scrollLeft();
|
| return RenderBlockFlow::scrollLeft();
|
| }
|
|
|
| -LayoutUnit RenderTextControlSingleLine::scrollTop() const
|
| +LayoutUnit LayoutTextControlSingleLine::scrollTop() const
|
| {
|
| if (innerEditorElement())
|
| return innerEditorElement()->scrollTop();
|
| return RenderBlockFlow::scrollTop();
|
| }
|
|
|
| -void RenderTextControlSingleLine::setScrollLeft(LayoutUnit newLeft)
|
| +void LayoutTextControlSingleLine::setScrollLeft(LayoutUnit newLeft)
|
| {
|
| if (innerEditorElement())
|
| innerEditorElement()->setScrollLeft(newLeft);
|
| }
|
|
|
| -void RenderTextControlSingleLine::setScrollTop(LayoutUnit newTop)
|
| +void LayoutTextControlSingleLine::setScrollTop(LayoutUnit newTop)
|
| {
|
| if (innerEditorElement())
|
| innerEditorElement()->setScrollTop(newTop);
|
| }
|
|
|
| -HTMLInputElement* RenderTextControlSingleLine::inputElement() const
|
| +HTMLInputElement* LayoutTextControlSingleLine::inputElement() const
|
| {
|
| return toHTMLInputElement(node());
|
| }
|
|
|