Index: Source/core/rendering/RenderTextControlSingleLine.cpp |
diff --git a/Source/core/rendering/RenderTextControlSingleLine.cpp b/Source/core/rendering/RenderTextControlSingleLine.cpp |
index 8d2c0453ee84921291a6775c16ee1eaa2e030c39..ca3f408153ff500429333952cf60bebd880d25ad 100644 |
--- a/Source/core/rendering/RenderTextControlSingleLine.cpp |
+++ b/Source/core/rendering/RenderTextControlSingleLine.cpp |
@@ -44,6 +44,7 @@ RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement* eleme |
: RenderTextControl(element) |
, m_shouldDrawCapsLockIndicator(false) |
, m_desiredInnerEditorLogicalHeight(-1) |
+ , m_hasOverridenInnerEditorLogicalTop(false) |
{ |
} |
@@ -116,6 +117,10 @@ void RenderTextControlSingleLine::layout() |
if (RenderBox* placeholderBox = placeholderElement ? placeholderElement->renderBox() : 0) |
layoutScope.setNeedsLayout(placeholderBox); |
} |
+ if (m_hasOverridenInnerEditorLogicalTop) { |
+ layoutScope.setNeedsLayout(innerEditorRenderer); |
+ m_hasOverridenInnerEditorLogicalTop = false; |
+ } |
if (viewPortRenderer && !viewPortRenderer->style()->logicalHeight().isAuto()) { |
viewPortRenderer->style()->setLogicalHeight(Length(Auto)); |
layoutScope.setNeedsLayout(viewPortRenderer); |
@@ -164,6 +169,7 @@ void RenderTextControlSingleLine::layout() |
if (!container && innerEditorRenderer && innerEditorRenderer->height() != contentLogicalHeight()) { |
LayoutUnit logicalHeightDiff = innerEditorRenderer->logicalHeight() - contentLogicalHeight(); |
innerEditorRenderer->setLogicalTop(innerEditorRenderer->logicalTop() - (logicalHeightDiff / 2 + layoutMod(logicalHeightDiff, 2))); |
+ m_hasOverridenInnerEditorLogicalTop = true; |
} else |
centerContainerIfNeeded(containerRenderer); |
Julien - ping for review
2014/11/19 01:13:27
This also overrides the logical top under some con
|