diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-07-22 10:43:03 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-07-23 11:56:54 +0200 |
commit | 4abe389278693f58299b171b66d2159859802b6b (patch) | |
tree | b9dca9e6d9f77cf9aab638589caf3ffae3fc1303 | |
parent | 5c93e44bc2a59ff374fab442cdee1ca65c984f18 (diff) |
Do not override padding in textfields
We currently override any defined padding on textfields with the Qt
style framewidth.
This patch instead adds the framewidth to any existing fixed padding.
This fixes textfield text from overlapping icons absolutely placed in
its padding.
Task-number: QTBUG-40257
Change-Id: I73feb3f9e4630f7c7813a1b2a16f1c525c84386f
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
-rw-r--r-- | Source/WebCore/platform/qt/RenderThemeQStyle.cpp | 16 | ||||
-rw-r--r-- | Source/WebCore/platform/qt/RenderThemeQt.cpp | 1 | ||||
-rw-r--r-- | Source/WebCore/platform/qt/RenderThemeQtMobile.cpp | 1 |
3 files changed, 13 insertions, 5 deletions
diff --git a/Source/WebCore/platform/qt/RenderThemeQStyle.cpp b/Source/WebCore/platform/qt/RenderThemeQStyle.cpp index 14b989894..f14358c64 100644 --- a/Source/WebCore/platform/qt/RenderThemeQStyle.cpp +++ b/Source/WebCore/platform/qt/RenderThemeQStyle.cpp @@ -153,6 +153,13 @@ QRect RenderThemeQStyle::inflateButtonRect(const QRect& originalRect) const return originalRect; } +int extendFixedPadding(Length oldPadding, int padding) { + if (oldPadding.isFixed()) { + return oldPadding.value() + padding; + } + return padding; +} + void RenderThemeQStyle::computeSizeBasedOnStyle(RenderStyle* renderStyle) const { QSize size(0, 0); @@ -163,13 +170,14 @@ void RenderThemeQStyle::computeSizeBasedOnStyle(RenderStyle* renderStyle) const case SearchFieldPart: case TextFieldPart: { int padding = m_qStyle->findFrameLineWidth(); - renderStyle->setPaddingLeft(Length(padding, Fixed)); - renderStyle->setPaddingRight(Length(padding, Fixed)); - renderStyle->setPaddingTop(Length(padding, Fixed)); - renderStyle->setPaddingBottom(Length(padding, Fixed)); + renderStyle->setPaddingLeft(Length(extendFixedPadding(renderStyle->paddingLeft(), padding), Fixed)); + renderStyle->setPaddingRight(Length(extendFixedPadding(renderStyle->paddingRight(), padding), Fixed)); + renderStyle->setPaddingTop(Length(extendFixedPadding(renderStyle->paddingTop(), padding), Fixed)); + renderStyle->setPaddingBottom(Length(extendFixedPadding(renderStyle->paddingBottom(), padding), Fixed)); break; } default: + renderStyle->resetPadding(); break; } // If the width and height are both specified, then we have nothing to do. diff --git a/Source/WebCore/platform/qt/RenderThemeQt.cpp b/Source/WebCore/platform/qt/RenderThemeQt.cpp index 208a492a5..321fd1108 100644 --- a/Source/WebCore/platform/qt/RenderThemeQt.cpp +++ b/Source/WebCore/platform/qt/RenderThemeQt.cpp @@ -315,7 +315,6 @@ void RenderThemeQt::adjustTextFieldStyle(StyleResolver*, RenderStyle* style, Ele // padding. Just worth keeping in mind! style->setBackgroundColor(Color::transparent); style->resetBorder(); - style->resetPadding(); computeSizeBasedOnStyle(style); } diff --git a/Source/WebCore/platform/qt/RenderThemeQtMobile.cpp b/Source/WebCore/platform/qt/RenderThemeQtMobile.cpp index 07c868f18..ceee78c65 100644 --- a/Source/WebCore/platform/qt/RenderThemeQtMobile.cpp +++ b/Source/WebCore/platform/qt/RenderThemeQtMobile.cpp @@ -656,6 +656,7 @@ void RenderThemeQtMobile::computeSizeBasedOnStyle(RenderStyle* renderStyle) cons break; } default: + renderStyle->resetPadding(); break; } // If the width and height are both specified, then we have nothing to do. |