summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-07-22 10:43:03 +0200
committerAllan Sandfeld Jensen <allan.jensen@digia.com>2014-07-23 11:56:54 +0200
commit4abe389278693f58299b171b66d2159859802b6b (patch)
treeb9dca9e6d9f77cf9aab638589caf3ffae3fc1303
parent5c93e44bc2a59ff374fab442cdee1ca65c984f18 (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.cpp16
-rw-r--r--Source/WebCore/platform/qt/RenderThemeQt.cpp1
-rw-r--r--Source/WebCore/platform/qt/RenderThemeQtMobile.cpp1
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.