Reviewed by Maciej.
Fix for <rdar://problem/4463835> Switch to use new popup menu implementation for <select>
* css/html4.css: Added style for new selects, and for list boxes.
* html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::shouldUseMenuList): Removed check for appearance so new popups can be styled.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setStyle): Removed padding. This is now set by the theme.
(WebCore::RenderMenuList::calcMinMaxWidth): Now takes minimum text size into account.
* rendering/RenderMenuList.h: Removed baselinePosition since we're letting the theme calculate that.
* rendering/RenderTheme.cpp: (WebCore::RenderTheme::isControlContainer): Added menuList as a ControlContainer,
so RenderThemeMac will compute its baseline.
* rendering/RenderTheme.h: (WebCore::RenderTheme::minimumTextSize): Added.
* rendering/RenderThemeMac.h: Added minimumTextSize, setPopupPaddingFromControlSize, popupButtonSizes, popupButtonMargins, popupButtonPadding.
Removed sizeOfArrowControl.
* rendering/RenderThemeMac.mm:
(WebCore::): Added enum for padding.
(WebCore::RenderThemeMac::adjustRepaintRect): Now inflates rect to account for control shadow.
(WebCore::RenderThemeMac::baselinePosition): Now calculates baseline for menulist.
(WebCore::RenderThemeMac::popupButtonMargins): Tweaked values.
(WebCore::RenderThemeMac::popupButtonSizes): Added.
(WebCore::RenderThemeMac::popupButtonPadding): Added, so different padding can be set for different control sizes.
(WebCore::RenderThemeMac::setPopupPaddingFromControlSize): Added.
(WebCore::RenderThemeMac::paintMenuList): Now inflates rect to account for control shadow.
(WebCore::RenderThemeMac::adjustMenuListStyle): Resets border, sets padding, sets control size.
(WebCore::RenderThemeMac::setPopupButtonCellState): Removed unnecessary class name.
(WebCore::RenderThemeMac::minimumTextSize): Added.
git-svn-id: svn://svn.chromium.org/blink/trunk@15290 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/WebCore/css/html4.css b/WebCore/css/html4.css
index 321626c..8518bc4 100644
--- a/WebCore/css/html4.css
+++ b/WebCore/css/html4.css
@@ -399,9 +399,24 @@
}
select {
- // FIXME: Uncomment this when flipping the switch to use the new popup menu implementation
- // -webkit-appearance: menulist;
+ -webkit-appearance: menulist;
box-sizing: border-box;
+ -webkit-box-align: center;
+}
+
+select[size],
+select[multiple],
+select[size][multiple] {
+ -webkit-appearance: none;
+ -webkit-box-align: initial;
+ box-sizing: initial;
+}
+
+select[size="0"],
+select[size="1"] {
+ -webkit-appearance: menulist;
+ box-sizing: border-box;
+ -webkit-box-align: center;
}
optgroup {