diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
commit | dd91e772430dc294e3bf478c119ef8d43c0a3358 (patch) | |
tree | 6f33ce4d5872a5691e0291eb45bf6ab373a5f567 /Source/WebCore/rendering/RenderTextControlSingleLine.cpp | |
parent | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (diff) | |
download | qtwebkit-dd91e772430dc294e3bf478c119ef8d43c0a3358.tar.gz |
Imported WebKit commit 3db4eb1820ac8fb03065d7ea73a4d9db1e8fea1a (http://svn.webkit.org/repository/webkit/trunk@110422)
This includes build fixes for the latest qtbase/qtdeclarative as well as the final QML2 API.
Diffstat (limited to 'Source/WebCore/rendering/RenderTextControlSingleLine.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderTextControlSingleLine.cpp | 60 |
1 files changed, 14 insertions, 46 deletions
diff --git a/Source/WebCore/rendering/RenderTextControlSingleLine.cpp b/Source/WebCore/rendering/RenderTextControlSingleLine.cpp index a44e2886c..e7ecedfa6 100644 --- a/Source/WebCore/rendering/RenderTextControlSingleLine.cpp +++ b/Source/WebCore/rendering/RenderTextControlSingleLine.cpp @@ -250,7 +250,8 @@ void RenderTextControlSingleLine::layout() } else if (containerRenderer->height() < contentHeight()) { containerRenderer->style()->setHeight(Length(contentHeight(), Fixed)); relayoutChildren = true; - } + } else + containerRenderer->style()->setHeight(Length(containerHeight, Fixed)); } RenderBlock::layoutBlock(relayoutChildren); @@ -360,13 +361,6 @@ void RenderTextControlSingleLine::capsLockStateMayHaveChanged() } } -#if ENABLE(INPUT_SPEECH) -HTMLElement* RenderTextControlSingleLine::speechButtonElement() const -{ - return inputElement()->speechButtonElement(); -} -#endif - bool RenderTextControlSingleLine::hasControlClip() const { // Apply control clip for text fields with decorations. @@ -417,16 +411,6 @@ LayoutUnit RenderTextControlSingleLine::preferredContentWidth(float charWidth) c if (maxCharWidth > 0.f) result += maxCharWidth - charWidth; - HTMLElement* resultsButton = resultsButtonElement(); - if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0) - result += resultsRenderer->borderLeft() + resultsRenderer->borderRight() + - resultsRenderer->paddingLeft() + resultsRenderer->paddingRight(); - - HTMLElement* cancelButton = cancelButtonElement(); - if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0) - result += cancelRenderer->borderLeft() + cancelRenderer->borderRight() + - cancelRenderer->paddingLeft() + cancelRenderer->paddingRight(); - if (includesDecoration) { HTMLElement* spinButton = innerSpinButtonElement(); if (RenderBox* spinRenderer = spinButton ? spinButton->renderBox() : 0) { @@ -438,38 +422,25 @@ LayoutUnit RenderTextControlSingleLine::preferredContentWidth(float charWidth) c } } -#if ENABLE(INPUT_SPEECH) - HTMLElement* speechButton = speechButtonElement(); - if (RenderBox* speechRenderer = speechButton ? speechButton->renderBox() : 0) { - result += speechRenderer->borderLeft() + speechRenderer->borderRight() + - speechRenderer->paddingLeft() + speechRenderer->paddingRight(); - } -#endif return result; } -void RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight(LayoutUnit lineHeight) +LayoutUnit RenderTextControlSingleLine::computeControlHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const { HTMLElement* resultsButton = resultsButtonElement(); if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0) { resultsRenderer->computeLogicalHeight(); - setHeight(max(height(), - resultsRenderer->borderTop() + resultsRenderer->borderBottom() + - resultsRenderer->paddingTop() + resultsRenderer->paddingBottom() + - resultsRenderer->marginTop() + resultsRenderer->marginBottom())); + nonContentHeight = max(nonContentHeight, resultsRenderer->borderAndPaddingHeight() + resultsRenderer->marginHeight()); lineHeight = max(lineHeight, resultsRenderer->height()); } HTMLElement* cancelButton = cancelButtonElement(); if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0) { cancelRenderer->computeLogicalHeight(); - setHeight(max(height(), - cancelRenderer->borderTop() + cancelRenderer->borderBottom() + - cancelRenderer->paddingTop() + cancelRenderer->paddingBottom() + - cancelRenderer->marginTop() + cancelRenderer->marginBottom())); + nonContentHeight = max(nonContentHeight, cancelRenderer->borderAndPaddingHeight() + cancelRenderer->marginHeight()); lineHeight = max(lineHeight, cancelRenderer->height()); } - setHeight(height() + lineHeight); + return lineHeight + nonContentHeight; } void RenderTextControlSingleLine::updateFromElement() @@ -620,7 +591,8 @@ PopupMenuStyle RenderTextControlSingleLine::itemStyle(unsigned) const PopupMenuStyle RenderTextControlSingleLine::menuStyle() const { - return PopupMenuStyle(style()->visitedDependentColor(CSSPropertyColor), style()->visitedDependentColor(CSSPropertyBackgroundColor), style()->font(), style()->visibility() == VISIBLE, style()->display() == NONE, style()->textIndent(), style()->direction(), style()->unicodeBidi() == Override); + return PopupMenuStyle(style()->visitedDependentColor(CSSPropertyColor), style()->visitedDependentColor(CSSPropertyBackgroundColor), style()->font(), style()->visibility() == VISIBLE, + style()->display() == NONE, style()->textIndent(), style()->direction(), isOverride(style()->unicodeBidi())); } int RenderTextControlSingleLine::clientInsetLeft() const @@ -641,22 +613,18 @@ int RenderTextControlSingleLine::clientInsetRight() const LayoutUnit RenderTextControlSingleLine::clientPaddingLeft() const { LayoutUnit padding = paddingLeft(); - - HTMLElement* resultsButton = resultsButtonElement(); - if (RenderBox* resultsRenderer = resultsButton ? resultsButton->renderBox() : 0) - padding += resultsRenderer->width() + resultsRenderer->marginLeft() + resultsRenderer->paddingLeft() + resultsRenderer->marginRight() + resultsRenderer->paddingRight(); - + if (RenderBox* box = innerBlockElement() ? innerBlockElement()->renderBox() : 0) + padding += box->x(); return padding; } LayoutUnit RenderTextControlSingleLine::clientPaddingRight() const { LayoutUnit padding = paddingRight(); - - HTMLElement* cancelButton = cancelButtonElement(); - if (RenderBox* cancelRenderer = cancelButton ? cancelButton->renderBox() : 0) - padding += cancelRenderer->width() + cancelRenderer->marginLeft() + cancelRenderer->paddingLeft() + cancelRenderer->marginRight() + cancelRenderer->paddingRight(); - + if (RenderBox* containerBox = containerElement() ? containerElement()->renderBox() : 0) { + if (RenderBox* innerBlockBox = innerBlockElement() ? innerBlockElement()->renderBox() : 0) + padding += containerBox->width() - (innerBlockBox->x() + innerBlockBox->width()); + } return padding; } |