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

Unified Diff: Source/core/rendering/RenderTextControlSingleLine.cpp

Issue 709613003: To ensure consistency between layouts, we need to reset any overriden top for centering the textfie… (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updates Created 6 years, 1 month 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: 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

Powered by Google App Engine
This is Rietveld 408576698