diff options
author | John Reck <jreck@google.com> | 2010-11-04 12:00:17 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2010-11-09 11:35:04 -0800 |
commit | e14391e94c850b8bd03680c23b38978db68687a8 (patch) | |
tree | 3fed87e6620fecaf3edc7259ae58a11662bedcb2 /WebCore/platform/gtk/RenderThemeGtk.cpp | |
parent | 1bd705833a68f07850cf7e204b26f8d328d16951 (diff) | |
download | external_webkit-e14391e94c850b8bd03680c23b38978db68687a8.zip external_webkit-e14391e94c850b8bd03680c23b38978db68687a8.tar.gz external_webkit-e14391e94c850b8bd03680c23b38978db68687a8.tar.bz2 |
Merge Webkit at r70949: Initial merge by git.
Change-Id: I77b8645c083b5d0da8dba73ed01d4014aab9848e
Diffstat (limited to 'WebCore/platform/gtk/RenderThemeGtk.cpp')
-rw-r--r-- | WebCore/platform/gtk/RenderThemeGtk.cpp | 60 |
1 files changed, 54 insertions, 6 deletions
diff --git a/WebCore/platform/gtk/RenderThemeGtk.cpp b/WebCore/platform/gtk/RenderThemeGtk.cpp index b2e3fd2..8df5cda 100644 --- a/WebCore/platform/gtk/RenderThemeGtk.cpp +++ b/WebCore/platform/gtk/RenderThemeGtk.cpp @@ -450,13 +450,56 @@ bool RenderThemeGtk::paintButton(RenderObject* o, const PaintInfo& i, const IntR return paintRenderObject(MOZ_GTK_BUTTON, o, i.context, rect, GTK_RELIEF_NORMAL); } -void RenderThemeGtk::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const +static void getComboBoxPadding(RenderStyle* style, int& left, int& top, int& right, int& bottom) { - style->resetBorder(); - style->resetPadding(); - style->setHeight(Length(Auto)); - style->setWhiteSpace(PRE); - adjustMozillaStyle(this, style, MOZ_GTK_DROPDOWN); + // If this menu list button isn't drawn using the native theme, we + // don't add any extra padding beyond what WebCore already uses. + if (style->appearance() == NoControlPart) + return; + moz_gtk_get_widget_border(MOZ_GTK_DROPDOWN, &left, &top, &right, &bottom, + gtkTextDirection(style->direction()), TRUE); +} + +int RenderThemeGtk::popupInternalPaddingLeft(RenderStyle* style) const +{ + int left = 0, top = 0, right = 0, bottom = 0; + getComboBoxPadding(style, left, top, right, bottom); + return left; +} + +int RenderThemeGtk::popupInternalPaddingRight(RenderStyle* style) const +{ + int left = 0, top = 0, right = 0, bottom = 0; + getComboBoxPadding(style, left, top, right, bottom); + return right; +} + +int RenderThemeGtk::popupInternalPaddingTop(RenderStyle* style) const +{ + int left = 0, top = 0, right = 0, bottom = 0; + getComboBoxPadding(style, left, top, right, bottom); + return top; +} + +int RenderThemeGtk::popupInternalPaddingBottom(RenderStyle* style) const +{ + int left = 0, top = 0, right = 0, bottom = 0; + getComboBoxPadding(style, left, top, right, bottom); + return bottom; +} + +void RenderThemeGtk::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const +{ + // The tests check explicitly that select menu buttons ignore line height. + style->setLineHeight(RenderStyle::initialLineHeight()); + + // We cannot give a proper rendering when border radius is active, unfortunately. + style->resetBorderRadius(); +} + +void RenderThemeGtk::adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const +{ + adjustMenuListStyle(selector, style, e); } bool RenderThemeGtk::paintMenuList(RenderObject* o, const PaintInfo& i, const IntRect& rect) @@ -464,6 +507,11 @@ bool RenderThemeGtk::paintMenuList(RenderObject* o, const PaintInfo& i, const In return paintRenderObject(MOZ_GTK_DROPDOWN, o, i.context, rect); } +bool RenderThemeGtk::paintMenuListButton(RenderObject* object, const PaintInfo& info, const IntRect& rect) +{ + return paintMenuList(object, info, rect); +} + void RenderThemeGtk::adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const { style->resetBorder(); |