LayoutTests:
authoradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Aug 2006 23:44:05 +0000 (23:44 +0000)
committeradele <adele@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Aug 2006 23:44:05 +0000 (23:44 +0000)
        Reviewed by Hyatt.

        New tests and updated tests for styled selects.

        * fast/borders/borderRadiusInvalidColor-expected.checksum: Added.
        * fast/borders/borderRadiusInvalidColor-expected.png: Added.
        * fast/borders/borderRadiusInvalidColor-expected.txt: Added.
        * fast/borders/borderRadiusInvalidColor.html: Added.

        * fast/forms/select-baseline-expected.checksum: Added.
        * fast/forms/select-baseline-expected.png: Added.
        * fast/forms/select-baseline-expected.txt: Added.
        * fast/forms/select-baseline.html: Added.

        * editing/pasteboard/4641033-expected.txt:
        * editing/selection/replaced-boundaries-3-expected.txt:
        * editing/selection/select-box-expected.txt:
        * fast/block/margin-collapse/103-expected.txt:
        * fast/forms/001-expected.checksum:
        * fast/forms/001-expected.png:
        * fast/forms/001-expected.txt:
        * fast/forms/003-expected.txt:
        * fast/forms/004-expected.txt:
        * fast/forms/HTMLOptionElement_label01-expected.txt:
        * fast/forms/HTMLOptionElement_label02-expected.txt:
        * fast/forms/HTMLOptionElement_label03-expected.txt:
        * fast/forms/HTMLOptionElement_label04-expected.txt:
        * fast/forms/HTMLOptionElement_label06-expected.txt:
        * fast/forms/HTMLOptionElement_label07-expected.txt:
        * fast/forms/form-element-geometry-expected.checksum:
        * fast/forms/form-element-geometry-expected.png:
        * fast/forms/form-element-geometry-expected.txt:
        * fast/forms/option-script-expected.txt:
        * fast/forms/option-text-clip-expected.txt:
        * fast/forms/select-change-listbox-to-popup-expected.txt:
        * fast/forms/select-selected-expected.txt:
        * fast/forms/select-style-expected.txt:
        * fast/forms/select-visual-hebrew-expected.txt:
        * fast/invalid/014-expected.txt:
        * fast/parser/document-write-option-expected.txt:
        * fast/replaced/width100percent-expected.txt:
        * http/tests/navigation/anchor-basic-expected.txt:
        * http/tests/navigation/anchor-frames-expected.txt:
        * http/tests/navigation/anchor-goback-expected.txt:
        * http/tests/navigation/anchor-subframeload-expected.txt:
        * http/tests/navigation/javascriptlink-basic-expected.txt:
        * http/tests/navigation/javascriptlink-frames-expected.txt:
        * http/tests/navigation/javascriptlink-goback-expected.txt:
        * http/tests/navigation/javascriptlink-subframeload-expected.txt:
        * http/tests/navigation/metaredirect-basic-expected.txt:
        * http/tests/navigation/metaredirect-frames-expected.txt:
        * http/tests/navigation/metaredirect-goback-expected.txt:
        * http/tests/navigation/metaredirect-subframeload-expected.txt:
        * http/tests/navigation/post-goback2-expected.txt:
        * http/tests/navigation/postredirect-goback2-expected.txt:
        * http/tests/navigation/redirect302-basic-expected.txt:
        * http/tests/navigation/redirect302-frames-expected.txt:
        * http/tests/navigation/redirect302-goback-expected.txt:
        * http/tests/navigation/redirect302-subframeload-expected.txt:
        * http/tests/navigation/relativeanchor-basic-expected.txt:
        * http/tests/navigation/relativeanchor-frames-expected.txt:
        * http/tests/navigation/relativeanchor-goback-expected.txt:
        * http/tests/navigation/slowmetaredirect-basic-expected.txt:
        * http/tests/navigation/slowtimerredirect-basic-expected.txt:
        * http/tests/navigation/success200-basic-expected.txt:
        * http/tests/navigation/success200-frames-expected.txt:
        * http/tests/navigation/success200-frames-loadsame-expected.txt:
        * http/tests/navigation/success200-goback-expected.txt:
        * http/tests/navigation/success200-loadsame-expected.txt:
        * http/tests/navigation/success200-reload-expected.txt:
        * http/tests/navigation/success200-subframeload-expected.txt:
        * http/tests/navigation/timerredirect-basic-expected.txt:
        * http/tests/navigation/timerredirect-frames-expected.txt:
        * http/tests/navigation/timerredirect-goback-expected.txt:
        * http/tests/navigation/timerredirect-subframeload-expected.txt:
        * tables/mozilla/bugs/bug1188-expected.txt:
        * tables/mozilla/bugs/bug18359-expected.txt:
        * tables/mozilla/bugs/bug2479-3-expected.txt:
        * tables/mozilla/bugs/bug2479-4-expected.txt:
        * tables/mozilla/bugs/bug29326-expected.txt:
        * tables/mozilla/bugs/bug33855-expected.txt:
        * tables/mozilla/bugs/bug4382-expected.txt:
        * tables/mozilla/bugs/bug96334-expected.txt:
        * tables/mozilla/core/margins-expected.txt:
        * tables/mozilla/dom/tableDom-expected.txt:
        * tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:

WebCore:

        Reviewed by Hyatt.

        Enable styling for popup menus. Also fixed baseline calculation for buttons and selects.

        Tests:   fast/forms/select-baseline.html
                 fast/borders/borderRadiusInvalidColor.html
        updated: fast/forms/select-style-expected.txt and more...

        * css/html4.css: Added style rules for styled select elements.

        * platform/GraphicsContext.h: Added argument for antialiasing.
        * platform/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::drawConvexPolygon): ditto.
        * platform/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::drawConvexPolygon): ditto.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawBorderArc): Added textColor argument so this can be used when the border color is invalid.
        (WebCore::RenderObject::drawBorder): Removed invalidisInvert since its dead code
         (any callers that set this to true were already ensuring that their color was valid).
         Updated drawConvexPolygon call to use FloatPoints instead of IntPoints.
        (WebCore::RenderObject::paintBorder): Updated to remove invalidisInvert argument from drawBorder call.
        (WebCore::RenderObject::paintOutline): ditto.
        * rendering/RenderFlow.cpp: (WebCore::RenderFlow::paintOutlineForLine): ditto.
        * rendering/RenderObject.h: Updated arguments for drawBorder and drawBorderArc.

        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::getBaselineOfLastLineBox): Changed isRootLineBox argument to true when setting line height.
          Added case for when there's no children to check for hasLineIfEmpty.
        * rendering/RenderBlock.h:
        * rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Changed isRootLineBox argument to true when setting line height.
        * rendering/RenderButton.h: (WebCore::RenderButton::hasLineIfEmpty): Added so buttons always get a line height.
        * rendering/RenderMenuList.h: (WebCore::RenderMenuList::hasLineIfEmpty): ditto.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutHorizontalBox): Added code to check hasLineIfEmpty to give flex boxes line height.
        (WebCore::RenderFlexibleBox::layoutVerticalBox): ditto.

        * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle): Moved the appearance adjustment code into adjust style.
        * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBoxDecorations): Lets the theme paint "decorations", like the arrow control and gradients
         immediately after painting the background.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle): This now checks whether the control is styled, and adjusts the appearance property appropriately.
        For styled selects, instead of setting the appearance to none, which is what we do for other styled controls, we set the appearance
        to MenulistButtonAppearance, which indicates that we will draw the arrow controls and button appearance in the engine.
        (WebCore::RenderTheme::paintDecorations): Added. Paints MenulistButtonAppearance in a different function,
         so the arrow control will draw at the right time (after the background).
        (WebCore::RenderTheme::paint): Added case for MenulistButtonAppearance.
        (WebCore::RenderTheme::paintBorderOnly): ditto.
        (WebCore::RenderTheme::isControlContainer): Removed cases for MenuListAppearance and MenulistButtonAppearance since the baseline is no longer provided by the theme.
        (WebCore::RenderTheme::adjustMenuListButtonStyle): Added.
        * rendering/RenderTheme.h: (WebCore::RenderTheme::paintMenuListButton): Added.

        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::isControlStyled): Removed code that made selects unstyle-able.
        (WebCore::RenderThemeMac::baselinePosition): Removed cases for MenuListAppearance and MenulistButtonAppearance.
        (WebCore::RenderThemeMac::popupButtonPadding): Added top and bottom padding so empty popups have the right baseline.
        (WebCore::TopGradientInterpolate): Added.
        (WebCore::BottomGradientInterpolate): Added.
        (WebCore::MainGradientInterpolate): Added.
        (WebCore::RenderThemeMac::paintMenuListButtonGradients): Added.  Draws gradients for styled popup menu button appearance.
        (WebCore::RenderThemeMac::paintMenuListButton): Calls paintMenuListButtonGradients, and draws arrow control.
        (WebCore::RenderThemeMac::adjustMenuListButtonStyle): Added to set padding and border radius to account for the arrow control size and font size.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16044 268f45cc-cd09-0410-ab3c-d52691b4dbfc

102 files changed:
LayoutTests/ChangeLog
LayoutTests/editing/pasteboard/4641033-expected.txt
LayoutTests/editing/selection/replaced-boundaries-3-expected.txt
LayoutTests/editing/selection/select-box-expected.txt
LayoutTests/fast/block/margin-collapse/103-expected.txt
LayoutTests/fast/borders/borderRadiusInvalidColor-expected.checksum [new file with mode: 0644]
LayoutTests/fast/borders/borderRadiusInvalidColor-expected.png [new file with mode: 0644]
LayoutTests/fast/borders/borderRadiusInvalidColor-expected.txt [new file with mode: 0644]
LayoutTests/fast/borders/borderRadiusInvalidColor.html [new file with mode: 0644]
LayoutTests/fast/forms/001-expected.checksum
LayoutTests/fast/forms/001-expected.png
LayoutTests/fast/forms/001-expected.txt
LayoutTests/fast/forms/003-expected.txt
LayoutTests/fast/forms/004-expected.txt
LayoutTests/fast/forms/HTMLOptionElement_label01-expected.txt
LayoutTests/fast/forms/HTMLOptionElement_label02-expected.txt
LayoutTests/fast/forms/HTMLOptionElement_label03-expected.txt
LayoutTests/fast/forms/HTMLOptionElement_label04-expected.txt
LayoutTests/fast/forms/HTMLOptionElement_label06-expected.txt
LayoutTests/fast/forms/HTMLOptionElement_label07-expected.txt
LayoutTests/fast/forms/form-element-geometry-expected.checksum
LayoutTests/fast/forms/form-element-geometry-expected.png
LayoutTests/fast/forms/form-element-geometry-expected.txt
LayoutTests/fast/forms/option-script-expected.txt
LayoutTests/fast/forms/option-text-clip-expected.txt
LayoutTests/fast/forms/select-baseline-expected.checksum [new file with mode: 0644]
LayoutTests/fast/forms/select-baseline-expected.png [new file with mode: 0644]
LayoutTests/fast/forms/select-baseline-expected.txt [new file with mode: 0644]
LayoutTests/fast/forms/select-baseline.html [new file with mode: 0644]
LayoutTests/fast/forms/select-change-listbox-to-popup-expected.txt
LayoutTests/fast/forms/select-selected-expected.txt
LayoutTests/fast/forms/select-style-expected.txt
LayoutTests/fast/forms/select-visual-hebrew-expected.txt
LayoutTests/fast/invalid/014-expected.txt
LayoutTests/fast/parser/document-write-option-expected.txt
LayoutTests/fast/replaced/width100percent-expected.txt
LayoutTests/http/tests/navigation/anchor-basic-expected.txt
LayoutTests/http/tests/navigation/anchor-frames-expected.txt
LayoutTests/http/tests/navigation/anchor-goback-expected.txt
LayoutTests/http/tests/navigation/anchor-subframeload-expected.txt
LayoutTests/http/tests/navigation/javascriptlink-basic-expected.txt
LayoutTests/http/tests/navigation/javascriptlink-frames-expected.txt
LayoutTests/http/tests/navigation/javascriptlink-goback-expected.txt
LayoutTests/http/tests/navigation/javascriptlink-subframeload-expected.txt
LayoutTests/http/tests/navigation/metaredirect-basic-expected.txt
LayoutTests/http/tests/navigation/metaredirect-frames-expected.txt
LayoutTests/http/tests/navigation/metaredirect-goback-expected.txt
LayoutTests/http/tests/navigation/metaredirect-subframeload-expected.txt
LayoutTests/http/tests/navigation/post-goback2-expected.txt
LayoutTests/http/tests/navigation/postredirect-goback2-expected.txt
LayoutTests/http/tests/navigation/redirect302-basic-expected.txt
LayoutTests/http/tests/navigation/redirect302-frames-expected.txt
LayoutTests/http/tests/navigation/redirect302-goback-expected.txt
LayoutTests/http/tests/navigation/redirect302-subframeload-expected.txt
LayoutTests/http/tests/navigation/relativeanchor-basic-expected.txt
LayoutTests/http/tests/navigation/relativeanchor-frames-expected.txt
LayoutTests/http/tests/navigation/relativeanchor-goback-expected.txt
LayoutTests/http/tests/navigation/slowmetaredirect-basic-expected.txt
LayoutTests/http/tests/navigation/slowtimerredirect-basic-expected.txt
LayoutTests/http/tests/navigation/success200-basic-expected.txt
LayoutTests/http/tests/navigation/success200-frames-expected.txt
LayoutTests/http/tests/navigation/success200-frames-loadsame-expected.txt
LayoutTests/http/tests/navigation/success200-goback-expected.txt
LayoutTests/http/tests/navigation/success200-loadsame-expected.txt
LayoutTests/http/tests/navigation/success200-reload-expected.txt
LayoutTests/http/tests/navigation/success200-subframeload-expected.txt
LayoutTests/http/tests/navigation/timerredirect-basic-expected.txt
LayoutTests/http/tests/navigation/timerredirect-frames-expected.txt
LayoutTests/http/tests/navigation/timerredirect-goback-expected.txt
LayoutTests/http/tests/navigation/timerredirect-subframeload-expected.txt
LayoutTests/tables/mozilla/bugs/bug1188-expected.txt
LayoutTests/tables/mozilla/bugs/bug18359-expected.txt
LayoutTests/tables/mozilla/bugs/bug2479-3-expected.txt
LayoutTests/tables/mozilla/bugs/bug2479-4-expected.txt
LayoutTests/tables/mozilla/bugs/bug29326-expected.txt
LayoutTests/tables/mozilla/bugs/bug33855-expected.txt
LayoutTests/tables/mozilla/bugs/bug4382-expected.txt
LayoutTests/tables/mozilla/bugs/bug96334-expected.txt
LayoutTests/tables/mozilla/core/margins-expected.txt
LayoutTests/tables/mozilla/dom/tableDom-expected.txt
LayoutTests/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/css/cssstyleselector.cpp
WebCore/css/html4.css
WebCore/platform/GraphicsContext.h
WebCore/platform/cairo/GraphicsContextCairo.cpp
WebCore/platform/cg/GraphicsContextCG.cpp
WebCore/rendering/RenderBlock.cpp
WebCore/rendering/RenderBlock.h
WebCore/rendering/RenderBox.cpp
WebCore/rendering/RenderButton.h
WebCore/rendering/RenderFlexibleBox.cpp
WebCore/rendering/RenderFlow.cpp
WebCore/rendering/RenderMenuList.h
WebCore/rendering/RenderObject.cpp
WebCore/rendering/RenderObject.h
WebCore/rendering/RenderTheme.cpp
WebCore/rendering/RenderTheme.h
WebCore/rendering/RenderThemeMac.h
WebCore/rendering/RenderThemeMac.mm
WebCore/rendering/bidi.cpp

index f7c3d80c7f96218de53410b7a6330a3d1a6ca8bc..65f4ba8646243ca44167072caf9ed378bab916e6 100644 (file)
@@ -1,3 +1,92 @@
+2006-08-25  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Hyatt.
+
+        New tests and updated tests for styled selects.
+
+        * fast/borders/borderRadiusInvalidColor-expected.checksum: Added.
+        * fast/borders/borderRadiusInvalidColor-expected.png: Added.
+        * fast/borders/borderRadiusInvalidColor-expected.txt: Added.
+        * fast/borders/borderRadiusInvalidColor.html: Added.
+
+        * fast/forms/select-baseline-expected.checksum: Added.
+        * fast/forms/select-baseline-expected.png: Added.
+        * fast/forms/select-baseline-expected.txt: Added.
+        * fast/forms/select-baseline.html: Added.
+
+        * editing/pasteboard/4641033-expected.txt:
+        * editing/selection/replaced-boundaries-3-expected.txt:
+        * editing/selection/select-box-expected.txt:
+        * fast/block/margin-collapse/103-expected.txt:
+        * fast/forms/001-expected.checksum:
+        * fast/forms/001-expected.png:
+        * fast/forms/001-expected.txt:
+        * fast/forms/003-expected.txt:
+        * fast/forms/004-expected.txt:
+        * fast/forms/HTMLOptionElement_label01-expected.txt:
+        * fast/forms/HTMLOptionElement_label02-expected.txt:
+        * fast/forms/HTMLOptionElement_label03-expected.txt:
+        * fast/forms/HTMLOptionElement_label04-expected.txt:
+        * fast/forms/HTMLOptionElement_label06-expected.txt:
+        * fast/forms/HTMLOptionElement_label07-expected.txt:
+        * fast/forms/form-element-geometry-expected.checksum:
+        * fast/forms/form-element-geometry-expected.png:
+        * fast/forms/form-element-geometry-expected.txt:
+        * fast/forms/option-script-expected.txt:
+        * fast/forms/option-text-clip-expected.txt:
+        * fast/forms/select-change-listbox-to-popup-expected.txt:
+        * fast/forms/select-selected-expected.txt:
+        * fast/forms/select-style-expected.txt:
+        * fast/forms/select-visual-hebrew-expected.txt:
+        * fast/invalid/014-expected.txt:
+        * fast/parser/document-write-option-expected.txt:
+        * fast/replaced/width100percent-expected.txt:
+        * http/tests/navigation/anchor-basic-expected.txt:
+        * http/tests/navigation/anchor-frames-expected.txt:
+        * http/tests/navigation/anchor-goback-expected.txt:
+        * http/tests/navigation/anchor-subframeload-expected.txt:
+        * http/tests/navigation/javascriptlink-basic-expected.txt:
+        * http/tests/navigation/javascriptlink-frames-expected.txt:
+        * http/tests/navigation/javascriptlink-goback-expected.txt:
+        * http/tests/navigation/javascriptlink-subframeload-expected.txt:
+        * http/tests/navigation/metaredirect-basic-expected.txt:
+        * http/tests/navigation/metaredirect-frames-expected.txt:
+        * http/tests/navigation/metaredirect-goback-expected.txt:
+        * http/tests/navigation/metaredirect-subframeload-expected.txt:
+        * http/tests/navigation/post-goback2-expected.txt:
+        * http/tests/navigation/postredirect-goback2-expected.txt:
+        * http/tests/navigation/redirect302-basic-expected.txt:
+        * http/tests/navigation/redirect302-frames-expected.txt:
+        * http/tests/navigation/redirect302-goback-expected.txt:
+        * http/tests/navigation/redirect302-subframeload-expected.txt:
+        * http/tests/navigation/relativeanchor-basic-expected.txt:
+        * http/tests/navigation/relativeanchor-frames-expected.txt:
+        * http/tests/navigation/relativeanchor-goback-expected.txt:
+        * http/tests/navigation/slowmetaredirect-basic-expected.txt:
+        * http/tests/navigation/slowtimerredirect-basic-expected.txt:
+        * http/tests/navigation/success200-basic-expected.txt:
+        * http/tests/navigation/success200-frames-expected.txt:
+        * http/tests/navigation/success200-frames-loadsame-expected.txt:
+        * http/tests/navigation/success200-goback-expected.txt:
+        * http/tests/navigation/success200-loadsame-expected.txt:
+        * http/tests/navigation/success200-reload-expected.txt:
+        * http/tests/navigation/success200-subframeload-expected.txt:
+        * http/tests/navigation/timerredirect-basic-expected.txt:
+        * http/tests/navigation/timerredirect-frames-expected.txt:
+        * http/tests/navigation/timerredirect-goback-expected.txt:
+        * http/tests/navigation/timerredirect-subframeload-expected.txt:
+        * tables/mozilla/bugs/bug1188-expected.txt:
+        * tables/mozilla/bugs/bug18359-expected.txt:
+        * tables/mozilla/bugs/bug2479-3-expected.txt:
+        * tables/mozilla/bugs/bug2479-4-expected.txt:
+        * tables/mozilla/bugs/bug29326-expected.txt:
+        * tables/mozilla/bugs/bug33855-expected.txt:
+        * tables/mozilla/bugs/bug4382-expected.txt:
+        * tables/mozilla/bugs/bug96334-expected.txt:
+        * tables/mozilla/core/margins-expected.txt:
+        * tables/mozilla/dom/tableDom-expected.txt:
+        * tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
+
 2006-08-24  Darin Adler  <darin@apple.com>
 
         Reviewed by Justin.
index ae1f2d0cc0558117d4eec77e4a7c134b4573ba7b..949d785ea01dd9e5226543b4bf3a01a2a3d2459b 100644 (file)
@@ -31,12 +31,12 @@ layer at (0,0) size 800x600
         RenderImage {IMG} at (0,0) size 76x103
         RenderText {#text} at (76,89) size 4x18
           text run at (76,89) width 4: " "
-        RenderMenuList {SELECT} at (82,90) size 36x18
+        RenderMenuList {SELECT} at (82,90) size 36x18 [bgcolor=#FFFFFF]
       RenderBlock (anonymous) at (0,196) size 784x110
         RenderImage {IMG} at (0,0) size 76x103
         RenderText {#text} at (76,89) size 4x18
           text run at (76,89) width 4: " "
-        RenderMenuList {SELECT} at (82,90) size 52x18
+        RenderMenuList {SELECT} at (82,90) size 52x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 21x13
             RenderText at (0,0) size 19x13
               text run at (0,0) width 19: "    1"
index 078d2c8aac60e98df4ec5dc3cb2542f05f6f6bb6..4db356198005bb00d064408c9340ae6c8dc9b5ae 100644 (file)
@@ -18,7 +18,7 @@ layer at (0,0) size 800x600
         RenderText {#text} at (0,0) size 22x18
           text run at (0,0) width 22: "abc"
         RenderBR {BR} at (22,14) size 0x0
-        RenderMenuList {SELECT} at (2,20) size 226x18
+        RenderMenuList {SELECT} at (2,20) size 226x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 195x13
             RenderText at (0,0) size 195x13
               text run at (0,0) width 195: "this select box shouldn't be selected"
index 0ad8b58805e0374f7df327eeb25217789574848a..a0f07b7b8bd0434f4643ad7e768ec4dca4adfeff 100644 (file)
@@ -64,7 +64,7 @@ layer at (0,0) size 800x600
         RenderBlock {DIV} at (0,0) size 784x22
           RenderText {#text} at (0,1) size 71x18
             text run at (0,1) width 71: "select box: "
-          RenderMenuList {SELECT} at (73,2) size 38x18
+          RenderMenuList {SELECT} at (73,2) size 38x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 7x13
               RenderText at (0,0) size 7x13
                 text run at (0,0) width 7: "1"
index 646208adc8f4b1c382f7adb19766a5459a782da9..f89872133531dc2ac5e6a482e3ecfb5e35683b03 100644 (file)
@@ -37,21 +37,21 @@ layer at (0,0) size 785x1701
             RenderBlock (floating) {SPAN} at (0,68) size 325x20 [color=#333333]
               RenderText {#text} at (0,2) size 128x15
                 text run at (0,2) width 128: "Your degree program*"
-            RenderMenuList {SELECT} at (325,68) size 180x18
+            RenderMenuList {SELECT} at (325,68) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 90x13
                   text run at (0,0) width 90: "Program options"
             RenderBlock (floating) {SPAN} at (0,88) size 325x20 [color=#333333]
               RenderText {#text} at (0,2) size 110x15
                 text run at (0,2) width 110: "Your year of study*"
-            RenderMenuList {SELECT} at (325,88) size 180x18
+            RenderMenuList {SELECT} at (325,88) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 124x13
                   text run at (0,0) width 124: "Years you've been here"
             RenderBlock (floating) {SPAN} at (0,108) size 325x20 [color=#333333]
               RenderText {#text} at (0,2) size 152x15
                 text run at (0,2) width 152: "Shakespeare classes taken"
-            RenderMenuList {SELECT} at (325,108) size 180x18
+            RenderMenuList {SELECT} at (325,108) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 76x13
                   text run at (0,0) width 76: "Number taken"
@@ -64,7 +64,7 @@ layer at (0,0) size 785x1701
             RenderBlock (floating) {SPAN} at (0,210) size 325x20 [color=#333333]
               RenderText {#text} at (0,2) size 321x15
                 text run at (0,2) width 321: "What percentage of your research time is spent online?"
-            RenderMenuList {SELECT} at (325,210) size 180x18
+            RenderMenuList {SELECT} at (325,210) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 106x13
                   text run at (0,0) width 106: "Percentages of time"
@@ -72,7 +72,7 @@ layer at (0,0) size 785x1701
               RenderText {#text} at (0,2) size 300x35
                 text run at (0,2) width 300: "What is holding you back from doing more research"
                 text run at (0,22) width 41: "online?"
-            RenderMenuList {SELECT} at (325,230) size 180x18
+            RenderMenuList {SELECT} at (325,230) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 44x13
                   text run at (0,0) width 44: "Reasons"
@@ -112,14 +112,14 @@ layer at (0,0) size 785x1701
             RenderBlock (floating) {SPAN} at (0,427) size 325x20 [color=#333333]
               RenderText {#text} at (0,2) size 274x15
                 text run at (0,2) width 274: "Which area of the ISE did you find most useful?"
-            RenderMenuList {SELECT} at (325,427) size 180x18
+            RenderMenuList {SELECT} at (325,427) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 99x13
                   text run at (0,0) width 99: "Sections of the ISE"
             RenderBlock (floating) {SPAN} at (0,447) size 325x20 [color=#333333]
               RenderText {#text} at (0,2) size 252x15
                 text run at (0,2) width 252: "How did you find the navigation of the ISE?"
-            RenderMenuList {SELECT} at (325,447) size 180x18
+            RenderMenuList {SELECT} at (325,447) size 180x18 [bgcolor=#FFFFFF]
               RenderBlock (anonymous) at (8,2) size 149x13
                 RenderText at (0,0) size 91x13
                   text run at (0,0) width 91: "Level of difficulty"
diff --git a/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.checksum b/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.checksum
new file mode 100644 (file)
index 0000000..0d72ecb
--- /dev/null
@@ -0,0 +1 @@
+d0f38e91f0a6d66c67aaf50ec472b8b9
\ No newline at end of file
diff --git a/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.png b/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.png
new file mode 100644 (file)
index 0000000..ec1f147
Binary files /dev/null and b/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.png differ
diff --git a/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.txt b/LayoutTests/fast/borders/borderRadiusInvalidColor-expected.txt
new file mode 100644 (file)
index 0000000..11a4be8
--- /dev/null
@@ -0,0 +1,11 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock (anonymous) at (0,0) size 784x18
+        RenderText {#text} at (0,0) size 600x18
+          text run at (0,0) width 600: "This tests that border radius will choose the foreground color when no border color is specified."
+      RenderBlock {DIV} at (0,18) size 56x24 [color=#FF0000] [bgcolor=#ADD8E6] [border: (3px solid #FF0000)]
+        RenderText {#text} at (3,3) size 21x18
+          text run at (3,3) width 21: "test"
diff --git a/LayoutTests/fast/borders/borderRadiusInvalidColor.html b/LayoutTests/fast/borders/borderRadiusInvalidColor.html
new file mode 100644 (file)
index 0000000..767a2d5
--- /dev/null
@@ -0,0 +1,12 @@
+<style>
+.myDiv {
+    -webkit-border-radius : 5px;
+    width: 50px;
+    color: red;
+    background-color: lightblue;
+    border: 3px solid;
+}
+</style>
+This tests that border radius will choose the foreground color when no border color is specified.
+
+<div class="myDiv">test</div>
index 193392a9b043f3580fad98af8d0f085a437cb797..eb4279a15f7deddd5e317c231ae8469b981fc280 100644 (file)
@@ -1 +1 @@
-64b27f49c223c43307733f846fac6fd3
\ No newline at end of file
+30c93784fba4675931e35b46fcefe87d
\ No newline at end of file
index a2d564602d108bc06c1f093226c5e8af7a20de30..44b4f5a3d81bbe486eb6080431d3a2790599f54e 100644 (file)
Binary files a/LayoutTests/fast/forms/001-expected.png and b/LayoutTests/fast/forms/001-expected.png differ
index 9b85c19711fdd790db70a868da58a830fc6bd8e1..3d579bab754fe081e815ee060ed04e41f93b78a0 100644 (file)
@@ -6,30 +6,30 @@ layer at (0,0) size 800x600
       RenderBlock {H1} at (0,0) size 784x37
         RenderText {#text} at (0,0) size 234x37
           text run at (0,0) width 234: "Min-Width Tests"
-      RenderTable {TABLE} at (0,58) size 784x24 [border: (2px outset #808080)]
-        RenderTableSection {TBODY} at (2,2) size 780x20
-          RenderTableRow {TR} at (0,0) size 780x20
-            RenderTableCell {TD} at (0,0) size 57x20 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-              RenderMenuList {SELECT} at (3,1) size 51x18
-                RenderBlock (anonymous) at (8,2) size 20x13
+      RenderTable {TABLE} at (0,58) size 784x89 [border: (2px outset #808080)]
+        RenderTableSection {TBODY} at (2,2) size 780x85
+          RenderTableRow {TR} at (0,0) size 780x85
+            RenderTableCell {TD} at (0,0) size 135x85 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+              RenderMenuList {SELECT} at (3,1) size 129x83 [bgcolor=#FFFFFF] [border: (40px solid #FF0000)]
+                RenderBlock (anonymous) at (48,41) size 20x13
                   RenderText at (0,0) size 20x13
                     text run at (0,0) width 20: "Foo"
-            RenderTableCell {TD} at (57,9) size 723x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-      RenderBlock {P} at (0,98) size 784x24
+            RenderTableCell {TD} at (135,41) size 645x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
+      RenderBlock {P} at (0,163) size 784x24
         RenderTable {TABLE} at (0,0) size 784x24 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 780x20
             RenderTableRow {TR} at (0,0) size 780x20
               RenderTableCell {TD} at (0,0) size 20x20 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBlock {INPUT} at (4,4) size 12x12
               RenderTableCell {TD} at (20,9) size 760x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-      RenderBlock {P} at (0,138) size 784x24
+      RenderBlock {P} at (0,203) size 784x24
         RenderTable {TABLE} at (0,0) size 784x24 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 780x20
             RenderTableRow {TR} at (0,0) size 780x20
               RenderTableCell {TD} at (0,0) size 20x20 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                 RenderBlock {INPUT} at (4,4) size 12x12
               RenderTableCell {TD} at (20,9) size 760x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-      RenderBlock {P} at (0,178) size 784x28
+      RenderBlock {P} at (0,243) size 784x28
         RenderTable {TABLE} at (0,0) size 784x28 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 780x24
             RenderTableRow {TR} at (0,0) size 780x24
@@ -39,7 +39,7 @@ layer at (0,0) size 800x600
                     RenderText at (0,0) size 20x13
                       text run at (0,0) width 20: "Foo"
               RenderTableCell {TD} at (42,11) size 738x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
-      RenderBlock {P} at (0,222) size 784x267
+      RenderBlock {P} at (0,287) size 784x267
         RenderTable {TABLE} at (0,0) size 784x91 [border: (2px outset #808080)]
           RenderTableSection {TBODY} at (2,2) size 780x87
             RenderTableRow {TR} at (0,0) size 780x87
index e5375227aa3cde4e02f69bb117c12e87efcea57a..b8c7912d6ad2a53ac2f65f1e3ca4bece6a09707d 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderMenuList {SELECT} at (2,0) size 59x18
+      RenderMenuList {SELECT} at (2,0) size 59x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 28x13
           RenderText at (0,0) size 28x13
             text run at (0,0) width 28: "Hello"
index dcccabc78bc21b3d3f907c7dbfc645dfcc4f63a2..22b989bfe6cd0ecd8fb4f18bb59a59e575f4eebb 100644 (file)
@@ -3,13 +3,13 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderMenuList {SELECT} at (2,2) size 59x18
+      RenderMenuList {SELECT} at (2,2) size 59x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 28x13
           RenderText at (0,0) size 28x13
             text run at (0,0) width 28: "Hello"
       RenderText {#text} at (63,1) size 4x18
         text run at (63,1) width 4: " "
-      RenderMenuList {SELECT} at (69,2) size 79x18
+      RenderMenuList {SELECT} at (69,2) size 79x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 48x13
           RenderText at (0,0) size 48x13
             text run at (0,0) width 48: "Goodbye"
index d44d0b8bb062e286ec7f12bc6225f00b485fcfcd..ef0537637f1527dbf3cfda56334971545252db5a 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 673x18
         text run at (0,0) width 673: "In the selection list below, the text 'The label for this element is \"1\"' should appear, and not the character '1'"
       RenderBR {BR} at (673,14) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 197x18
+      RenderMenuList {SELECT} at (2,20) size 197x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 166x13
           RenderText at (0,0) size 166x13
             text run at (0,0) width 166: "the label for this element is \"1\""
index 82e57dba55478ed295a09ba86272b93b5a258c64..7561e7d55c052ec83abdabd6b53862f5b37ec37e 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 300x18
         text run at (0,0) width 300: "With the label empty, the enclosing text is used."
       RenderBR {BR} at (300,14) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 309x18
+      RenderMenuList {SELECT} at (2,20) size 309x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 278x13
           RenderText at (0,0) size 279x13
             text run at (0,0) width 279: "empty label should display empty string to match IE"
index 611bd44a039539dbe3db7511d09f2f5ab8ef36d9..c38f6750cdc609b2040013abfc077c0d2d0b9999 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 436x18
         text run at (0,0) width 436: "When the label contains only white space, the containing text is used."
       RenderBR {BR} at (436,14) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 338x18
+      RenderMenuList {SELECT} at (2,20) size 338x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 307x13
           RenderText at (0,0) size 308x13
             text run at (0,0) width 308: "white space label should display empty string to match IE"
index a25669b5d3c73db9e138c01387cfcad256e1057f..ae57d97fd65fd5f3e67fce943fa906c587944800 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 595x18
         text run at (0,0) width 595: "The label attribute appears, but is missing the equals value piece, so the containing text is used."
       RenderBR {BR} at (595,14) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 464x18
+      RenderMenuList {SELECT} at (2,20) size 464x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 433x13
           RenderText at (0,0) size 433x13
             text run at (0,0) width 433: "the label attribute is mentioned but no value is specified; this text should appear"
index c5138f7969ac9bdbafded3806e1147bacbcef79c..e8922decd0fde22c7324142920fda8283b284848 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 718x18
         text run at (0,0) width 718: "The select item below has a label specified, and no enclosed text. There should be no text shown in the select box."
       RenderBR {BR} at (718,14) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 53x18
+      RenderMenuList {SELECT} at (2,20) size 53x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 22x13
           RenderText at (0,0) size 22x13
             text run at (0,0) width 22: "text"
index 0c7a39eca202025b92ad50c9f37572570fa42acf..4d9994099c4938b7db893ea027803453555d83fa 100644 (file)
@@ -7,5 +7,5 @@ layer at (0,0) size 800x600
         text run at (0,0) width 781: "The select item below has a label specified, and enclosed text that is whitespace. There should be no text shown in the select"
         text run at (0,18) width 28: "box."
       RenderBR {BR} at (28,32) size 0x0
-      RenderMenuList {SELECT} at (2,38) size 36x18
+      RenderMenuList {SELECT} at (2,38) size 36x18 [bgcolor=#FFFFFF]
       RenderText {#text} at (0,0) size 0x0
index 818073405eb0d27630e036423ee5c0304837ba79..fa6d4a8eae58865c28e04d8eed9010f2619ad680 100644 (file)
@@ -1 +1 @@
-eddcc7aa8111d729c3cb56d3fa81566c
\ No newline at end of file
+8a8f3798c469460bda12c28dc5b8e130
\ No newline at end of file
index b5fdb59fbda851de4c0924c2be8fcb76362046c7..76f2aa6d5cea255e89540dc16e4f9f9428a62c5b 100644 (file)
Binary files a/LayoutTests/fast/forms/form-element-geometry-expected.png and b/LayoutTests/fast/forms/form-element-geometry-expected.png differ
index 20d7d5dcfec78097a3f4883036d9724fa2f4fb1b..336e21993cccd9195f0830f34b30676c236f5eba 100644 (file)
@@ -25,7 +25,7 @@ layer at (0,0) size 785x627
             RenderTableCell {TD} at (62,2) size 68x24 [r=0 c=1 rs=1 cs=1]
               RenderBlock {DIV} at (1,1) size 66x22 [border: (2px solid #0000FF)]
                 RenderInline {FONT} at (0,0) size 62x18
-                  RenderMenuList {SELECT} at (2,2) size 62x18
+                  RenderMenuList {SELECT} at (2,2) size 62x18 [bgcolor=#FFFFFF]
                     RenderBlock (anonymous) at (8,2) size 31x13
                       RenderText at (0,0) size 31x13
                         text run at (0,0) width 31: "menu"
@@ -54,7 +54,7 @@ layer at (0,0) size 785x627
                       text run at (0,0) width 36: "button"
             RenderTableCell {TD} at (62,2) size 68x24 [r=0 c=1 rs=1 cs=1]
               RenderBlock {DIV} at (1,1) size 66x22 [border: (2px solid #0000FF)]
-                RenderMenuList {SELECT} at (2,2) size 62x18
+                RenderMenuList {SELECT} at (2,2) size 62x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 31x13
                     RenderText at (0,0) size 31x13
                       text run at (0,0) width 31: "menu"
@@ -77,7 +77,7 @@ layer at (0,0) size 785x627
             RenderTableCell {TD} at (62,2) size 68x24 [r=0 c=1 rs=1 cs=1]
               RenderBlock {DIV} at (1,1) size 66x22 [border: (2px solid #0000FF)]
                 RenderInline {FONT} at (0,0) size 62x13
-                  RenderMenuList {SELECT} at (2,2) size 62x18
+                  RenderMenuList {SELECT} at (2,2) size 62x18 [bgcolor=#FFFFFF]
                     RenderBlock (anonymous) at (8,2) size 31x13
                       RenderText at (0,0) size 31x13
                         text run at (0,0) width 31: "menu"
@@ -117,7 +117,7 @@ layer at (0,0) size 785x627
                 text run at (0,0) width 36: "button"
           RenderText {#text} at (99,0) size 6x28
             text run at (99,0) width 6: " "
-          RenderMenuList {SELECT} at (107,9) size 62x18
+          RenderMenuList {SELECT} at (107,9) size 62x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 31x13
               RenderText at (0,0) size 31x13
                 text run at (0,0) width 31: "menu"
@@ -137,7 +137,7 @@ layer at (0,0) size 785x627
               text run at (0,0) width 36: "button"
         RenderText {#text} at (83,1) size 4x18
           text run at (83,1) width 4: " "
-        RenderMenuList {SELECT} at (89,2) size 62x18
+        RenderMenuList {SELECT} at (89,2) size 62x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 31x13
             RenderText at (0,0) size 31x13
               text run at (0,0) width 31: "menu"
@@ -158,7 +158,7 @@ layer at (0,0) size 785x627
                 text run at (0,0) width 36: "button"
           RenderText {#text} at (74,5) size 3x13
             text run at (74,5) width 3: " "
-          RenderMenuList {SELECT} at (79,2) size 62x18
+          RenderMenuList {SELECT} at (79,2) size 62x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 31x13
               RenderText at (0,0) size 31x13
                 text run at (0,0) width 31: "menu"
@@ -186,31 +186,31 @@ layer at (0,0) size 785x627
       RenderBlock {DIV} at (0,538) size 769x29
         RenderInline {FONT} at (0,0) size 181x28
           RenderText {#text} at (0,0) size 0x0
-          RenderMenuList {SELECT} at (2,9) size 36x18
+          RenderMenuList {SELECT} at (2,9) size 36x18 [bgcolor=#FFFFFF]
           RenderText {#text} at (40,0) size 6x28
             text run at (40,0) width 6: " "
-          RenderMenuList {SELECT} at (48,9) size 36x18
+          RenderMenuList {SELECT} at (48,9) size 36x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 5x13
               RenderText at (0,0) size 5x13
                 text run at (0,0) width 5: "|"
           RenderText {#text} at (86,0) size 6x28
             text run at (86,0) width 6: " "
-          RenderMenuList {SELECT} at (94,9) size 85x18
+          RenderMenuList {SELECT} at (94,9) size 85x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 54x13
               RenderText at (0,0) size 54x13
                 text run at (0,0) width 54: "xxxxxxxx"
           RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,567) size 769x22
-        RenderMenuList {SELECT} at (2,2) size 36x18
+        RenderMenuList {SELECT} at (2,2) size 36x18 [bgcolor=#FFFFFF]
         RenderText {#text} at (40,1) size 4x18
           text run at (40,1) width 4: " "
-        RenderMenuList {SELECT} at (46,2) size 36x18
+        RenderMenuList {SELECT} at (46,2) size 36x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 5x13
             RenderText at (0,0) size 5x13
               text run at (0,0) width 5: "|"
         RenderText {#text} at (84,1) size 4x18
           text run at (84,1) width 4: " "
-        RenderMenuList {SELECT} at (90,2) size 85x18
+        RenderMenuList {SELECT} at (90,2) size 85x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 54x13
             RenderText at (0,0) size 54x13
               text run at (0,0) width 54: "xxxxxxxx"
@@ -218,16 +218,16 @@ layer at (0,0) size 785x627
       RenderBlock {DIV} at (0,589) size 769x22
         RenderInline {FONT} at (0,0) size 175x13
           RenderText {#text} at (0,0) size 0x0
-          RenderMenuList {SELECT} at (2,2) size 36x18
+          RenderMenuList {SELECT} at (2,2) size 36x18 [bgcolor=#FFFFFF]
           RenderText {#text} at (40,5) size 3x13
             text run at (40,5) width 3: " "
-          RenderMenuList {SELECT} at (45,2) size 36x18
+          RenderMenuList {SELECT} at (45,2) size 36x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 5x13
               RenderText at (0,0) size 5x13
                 text run at (0,0) width 5: "|"
           RenderText {#text} at (83,5) size 3x13
             text run at (83,5) width 3: " "
-          RenderMenuList {SELECT} at (88,2) size 85x18
+          RenderMenuList {SELECT} at (88,2) size 85x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 54x13
               RenderText at (0,0) size 54x13
                 text run at (0,0) width 54: "xxxxxxxx"
index af32516b1c131a55e09b549bae85f868ecd817a2..7f61e8490e27860f9a0135d2e40fe66985d80ab6 100644 (file)
@@ -11,7 +11,7 @@ layer at (0,0) size 800x600
         text run at (0,18) width 109: "TEST FAILED: "
         text run at (109,18) width 316: "If the popup menu says \"document.write('Text')\". "
       RenderBR {BR} at (425,32) size 0x0
-      RenderMenuList {SELECT} at (2,38) size 55x18
+      RenderMenuList {SELECT} at (2,38) size 55x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 24x13
           RenderText at (0,0) size 24x13
             text run at (0,0) width 24: "Text"
index 89f09347d97e14dfdbc96267135b1867b477dec1..f7cce241f79a7d2fd80b3e558205ac1323bfd01e 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 702x18
         text run at (0,0) width 702: "This tests that the option text is clipped properly, and doesn't spill over into the arrow part of the popup control. "
       RenderBR {BR} at (702,14) size 0x0
-      RenderMenuList {SELECT} at (0,20) size 150x18
+      RenderMenuList {SELECT} at (0,20) size 150x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 119x13
           RenderText at (0,0) size 130x13
             text run at (0,0) width 130: "12345 6789 ABCD EFGH"
diff --git a/LayoutTests/fast/forms/select-baseline-expected.checksum b/LayoutTests/fast/forms/select-baseline-expected.checksum
new file mode 100644 (file)
index 0000000..8998f5b
--- /dev/null
@@ -0,0 +1 @@
+ef709cdc25c1d59bad19f264a10bd4a7
\ No newline at end of file
diff --git a/LayoutTests/fast/forms/select-baseline-expected.png b/LayoutTests/fast/forms/select-baseline-expected.png
new file mode 100644 (file)
index 0000000..fba8e23
Binary files /dev/null and b/LayoutTests/fast/forms/select-baseline-expected.png differ
diff --git a/LayoutTests/fast/forms/select-baseline-expected.txt b/LayoutTests/fast/forms/select-baseline-expected.txt
new file mode 100644 (file)
index 0000000..436e056
--- /dev/null
@@ -0,0 +1,43 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderText {#text} at (0,0) size 462x18
+        text run at (0,0) width 462: "This tests that empty select controls and buttons have the correct baseline."
+      RenderBR {BR} at (462,14) size 0x0
+      RenderMenuList {SELECT} at (2,20) size 36x18 [bgcolor=#FFFFFF]
+      RenderText {#text} at (40,19) size 29x18
+        text run at (40,19) width 29: " test "
+      RenderMenuList {SELECT} at (71,20) size 51x18 [bgcolor=#FFFFFF]
+        RenderBlock (anonymous) at (8,2) size 20x13
+          RenderText at (0,0) size 20x13
+            text run at (0,0) width 20: "test"
+      RenderText {#text} at (124,19) size 4x18
+        text run at (124,19) width 4: " "
+      RenderMenuList {SELECT} at (130,20) size 36x18 [color=#00008B] [bgcolor=#ADD8E6] [border: (1px solid #00008B)]
+      RenderText {#text} at (168,19) size 29x18
+        text run at (168,19) width 29: " test "
+      RenderMenuList {SELECT} at (199,20) size 51x18 [color=#00008B] [bgcolor=#ADD8E6] [border: (1px solid #00008B)]
+        RenderBlock (anonymous) at (9,2) size 20x13
+          RenderText at (0,0) size 20x13
+            text run at (0,0) width 20: "test"
+      RenderText {#text} at (252,19) size 4x18
+        text run at (252,19) width 4: " "
+      RenderButton {BUTTON} at (258,20) size 16x18 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0) none (2px outset #C0C0C0)]
+      RenderText {#text} at (276,19) size 4x18
+        text run at (276,19) width 4: " "
+      RenderButton {BUTTON} at (282,20) size 36x18 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0) none (2px outset #C0C0C0)]
+        RenderBlock (anonymous) at (8,2) size 20x13
+          RenderText {#text} at (0,0) size 20x13
+            text run at (0,0) width 20: "test"
+      RenderText {#text} at (320,19) size 4x18
+        text run at (320,19) width 4: " "
+      RenderButton {BUTTON} at (324,18) size 16x22 [color=#00008B] [bgcolor=#ADD8E6] [border: (2px outset #C0C0C0)]
+      RenderText {#text} at (340,19) size 4x18
+        text run at (340,19) width 4: " "
+      RenderButton {BUTTON} at (344,18) size 36x22 [color=#00008B] [bgcolor=#ADD8E6] [border: (2px outset #C0C0C0)]
+        RenderBlock (anonymous) at (8,4) size 20x13
+          RenderText {#text} at (0,0) size 20x13
+            text run at (0,0) width 20: "test"
+      RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/fast/forms/select-baseline.html b/LayoutTests/fast/forms/select-baseline.html
new file mode 100644 (file)
index 0000000..b89347e
--- /dev/null
@@ -0,0 +1,25 @@
+<style>
+.styledControl {
+    background-color: lightblue;
+    color: darkblue;
+}
+</style>
+This tests that empty select controls and buttons have the correct baseline.<br>
+<select>
+    <option>
+</select>
+test
+<select>
+    <option>test
+</select>
+<select class="styledControl">
+    <option>
+</select>
+test
+<select class="styledControl">
+    <option>test
+</select>
+<button></button>
+<button>test</button>
+<button class="styledControl"></button>
+<button class="styledControl">test</button>
index 50c58ec38065f8b5f91368991bb20de4e10db55b..f45937bb6abd29f94ab66c690b9fdfe6b46a878b 100644 (file)
@@ -6,7 +6,7 @@ layer at (0,0) size 800x600
       RenderText {#text} at (0,0) size 441x18
         text run at (0,0) width 441: "This tests that you can dynamically change a list box to a popup menu"
       RenderBR {BR} at (441,14) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 225x18
+      RenderMenuList {SELECT} at (2,20) size 225x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 194x13
           RenderText at (0,0) size 195x13
             text run at (0,0) width 195: "This should turn into a popup menu"
index ce9d5e093ad27a76ed56950ed681a0761e06c422..504b774b40f674c5b7b9a8c235b7830485acc7a6 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderMenuList {SELECT} at (2,2) size 262x18
+      RenderMenuList {SELECT} at (2,2) size 262x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 231x13
           RenderText at (0,0) size 166x13
             text run at (0,0) width 166: "should see this option selected"
index 0fad0661c5eaff00ef666904d1085b2d80fa0275..d6e196a9b05c62ce618b2f52137dc2a7ca351669 100644 (file)
@@ -7,7 +7,7 @@ layer at (0,0) size 800x600
         text run at (0,0) width 250: "This tests that styled popups look right. "
         text run at (250,0) width 308: "(Aqua for now- later, we will honor the styling). "
       RenderBR {BR} at (0,0) size 0x0
-      RenderMenuList {SELECT} at (2,20) size 51x18 [bgcolor=#FF0000]
-        RenderBlock (anonymous) at (8,2) size 20x13
+      RenderMenuList {SELECT} at (2,20) size 51x18 [bgcolor=#FF0000] [border: (1px solid #000000)]
+        RenderBlock (anonymous) at (9,2) size 20x13
           RenderText at (0,0) size 20x13
             text run at (0,0) width 20: "test"
index 4ce97d64be3f5237f97c03f1c0addf44c1352ab0..3d0d851bf91226ac8be85420bb561b1f00cec418 100644 (file)
@@ -12,7 +12,7 @@ layer at (0,0) size 800x600
           text run at (0,0) width 348 LTR override: "Text on the pop-up and in the list should look like this: "
           text run at (348,0) width 43 LTR override: "\x{5E8}\x{5D5}\x{5EA}\x{5E4}\x{5DB}"
       RenderBlock (anonymous) at (0,86) size 784x22
-        RenderMenuList {SELECT} at (2,2) size 61x18
+        RenderMenuList {SELECT} at (2,2) size 61x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 30x13
             RenderText at (0,0) size 30x13
               text run at (0,0) width 30 RTL: "\x{5DB}\x{5E4}\x{5EA}\x{5D5}\x{5E8}"
index e56a57297c479741d339142f6097f1864f74de97..c9cd1cbe1613e8626e6746e87db84ab9e5e1fa81 100644 (file)
@@ -9,7 +9,7 @@ layer at (0,0) size 800x600
           text run at (282,0) width 321: "H2 should allow a form inside it, but p should not. "
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {FORM} at (0,18) size 784x22
-        RenderMenuList {SELECT} at (2,2) size 39x18
+        RenderMenuList {SELECT} at (2,2) size 39x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 8x13
             RenderText at (0,0) size 8x13
               text run at (0,0) width 8: "A"
@@ -18,7 +18,7 @@ layer at (0,0) size 800x600
 layer at (470,45) size 47x50
   RenderBlock (positioned) {H2} at (470,45) size 47x50 [border: (2px solid #008000)]
     RenderBlock {FORM} at (2,2) size 43x22
-      RenderMenuList {SELECT} at (2,2) size 39x18
+      RenderMenuList {SELECT} at (2,2) size 39x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 8x13
           RenderText at (0,0) size 8x13
             text run at (0,0) width 8: "A"
index 1f7c61143aa46ac92f0c7cb57d0af13401df41fd..d4a0d873970ed6f348a3b8e528482f1474639668 100644 (file)
@@ -3,7 +3,7 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderMenuList {SELECT} at (2,2) size 324x18
+      RenderMenuList {SELECT} at (2,2) size 324x18 [bgcolor=#FFFFFF]
         RenderBlock (anonymous) at (8,2) size 293x13
           RenderText at (0,0) size 294x13
             text run at (0,0) width 294: "This is a very long string so it makes the select bigger."
index e08e51cb5e9d2fe3571d7b3cbd88926def83bb66..9e6917c6938d9eac9bd2d12cd8fefa74dc3934cd 100644 (file)
@@ -167,17 +167,17 @@ layer at (0,0) size 785x980
         RenderTableSection {TBODY} at (0,0) size 769x26
           RenderTableRow {TR} at (0,1) size 769x24
             RenderTableCell {TD} at (1,1) size 53x24 [r=0 c=0 rs=1 cs=1]
-              RenderMenuList {SELECT} at (1,3) size 51x18
+              RenderMenuList {SELECT} at (1,3) size 51x18 [bgcolor=#FFFFFF]
                 RenderBlock (anonymous) at (8,2) size 20x13
                   RenderText at (0,0) size 20x13
                     text run at (0,0) width 20: "one"
             RenderTableCell {TD} at (55,1) size 33x24 [r=0 c=1 rs=1 cs=1]
-              RenderMenuList {SELECT} at (1,3) size 31x18
+              RenderMenuList {SELECT} at (1,3) size 31x18 [bgcolor=#FFFFFF]
                 RenderBlock (anonymous) at (8,2) size 0x13
                   RenderText at (0,0) size 20x13
                     text run at (0,0) width 20: "two"
             RenderTableCell {TD} at (89,1) size 33x24 [r=0 c=2 rs=1 cs=1]
-              RenderMenuList {SELECT} at (1,3) size 31x18
+              RenderMenuList {SELECT} at (1,3) size 31x18 [bgcolor=#FFFFFF]
                 RenderBlock (anonymous) at (8,2) size 0x13
                   RenderText at (0,0) size 28x13
                     text run at (0,0) width 28: "three"
index 5571bf48b5adb92a60d369545abeb2b4872e26df..e482e59936115f211ecf2fa03e1598a86006c0e0 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index 165748d44cf15595281aa1c9305d7f1c140d28fa..4ef75cc81e656a32490596614f48f6d915685e36 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 41ddbf3bf2c42aa67fae92dd1ac75a6eddb88748..4783870bd6a961552b99a09a0a9153cb20501bb8 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index 9170a37b4eb386b8b1f3dbbe92c44e224d040e22..6124ef62b1b764b6a8693193438c275658f1a00a 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 7b42a2b0d84434fe9346aaf346329cffa91f003e..387cb0b1735b93dd779be93bb5b476bb1474d090 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index aeee4eb0f9ac4615024b282168fe10875a63d63f..2ce0d269208a93f41885d1eb42284e195103f0b3 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 6e8f96ec6f141ff04259720b42fb0100ca0e1278..187d3e83ec9ed4d8af675b384351c9a3844b24d1 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index bff9b0d1227a192aa6cc593502ea0f4c5cdbf22b..9c8cc65786f1c0b9282911169f5c24886e75d095 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 47ac96d797b050f9a1d5f3c0a155107751df091d..03e486c10c5c148b6035d4a28789c1ab5f48064a 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index 2ab124f19004fb27f4e41eab49cf027149ec8259..5c028a2790f646731a22a2c3cc67c2436901fc09 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index ab966a6d3f74deff6083f503210e373d3e63179b..164f05e17132cd464e68a5626283e95cf27ba78a 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index d13b66cf8093429f8e6b7242ce4b092139a5643c..fa83da0df2e08b4a2419b847e0e9e797735d241f 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 87076aafa9873ea1f79ea4d7fcdb2175f08872f5..dd8dec8bfef0266c439bb2ee9f66371bb4352fed 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index 2c09878f80c4d3dd3f059ff3dafef1f2d665ae8a..842305ee4df7a1801b1c1f7beaf1915bc1cece79 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index d113d689328e1dd39989420ecf32ce86de5e6d6d..ba86e7c5eb4002e1c883c06bb89d8f7922a4f949 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index d4c94e0d210c52565bd799dbe4bd3ece96d1e221..95e35fb31976568e8b27a06d23d25d5615a72573 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index bceb0410f5222e83a80f1be5872f7cda808badfa..6b008b551a464bf77e0b491259a648c10b0aa114 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index f63d47cdcce1e9b4b80d13ca0665b62b248e64f7..62c659114808ac87d8aa5b7607a1f6a7ba67034e 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 7ee9fa4ffdc73313ae084efbad8422888b7e7120..86e58bdc4641d3e0ea0442b9870d3fb835717632 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index bbd145f791cad84c8ff155ebd2d5e168a85e436a..3b50b058f0235a872c7d0c8172f11f59661d4b10 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 9969666a57560053d891f762262d7d7e18c978c7..b9adf21e57836a9d9e1ec7079904d2ec6ae645e7 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index 150d72359dcc0b36a929b683f346999eba782b3a..1612c0692a9b6230f3c05bb5386b69298bb11b0c 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index 99a164829690a2ff47f84550a5fc661219e09ac7..e86c7a069ab0c4abe3cd428250684edb71b54266 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index db415bf54e69c6853b73d70419bede45c78031c5..0431f83ad0ec563bb6aac12a8470051b44e9db45 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index 60cab64ace7e2feab09a2d965cd0d13df7c58646..428239f484c9b7445283d5ba90496cdbd3c7e91f 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 26b149def035affb953fb8fdec70aa04c3079709..5cc205aa6cc0cdf541e6525539a2127641b1d2fd 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index bee940101fe508adba27e8bf3aea0d14b73d2a3b..e79a38575e2e9f74cf08a0bb56481535c60fc17c 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index 85298cf3b4aa024baccd34fa0d350ac872ea1d2f..a45834120ec8f47b120366b46a9698fedfb37aee 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index a61d63947cbd747cb2ec2894ff7c29b8d6091ba3..061d828e804dac753a43183930d66bc0ea925e7c 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index 4a3738eebc24f34dd5fabb5fcbb21317605cda91..8f80f1a71e5185786c4394626d9030254ee8c8ae 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 1e3b9c1e8b669041ff64774cddd8d1f7fb156930..7bb08f88bb2862568e0e33049f77524515082ed9 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 63x13
               text run at (0,0) width 63: "Initial Value"
index fb72918a982bd4f2d6e7e6da40155282abd4c7dd..27f0c15f3033d2bb62d2823e13608e54eb75a3e9 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index 03139800c2569c3e0ee1f0a4c22bd7dc4728a276..b35c04c63f736b611838c0383df963302abf4e58 100644 (file)
@@ -50,7 +50,7 @@ layer at (0,0) size 785x1550
         RenderText {#text} at (18,229) size 130x37
           text run at (18,229) width 130: " option #2"
         RenderBR {BR} at (148,258) size 0x0
-        RenderMenuList {SELECT} at (2,268) size 255x18
+        RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 224x13
             RenderText at (0,0) size 225x13
               text run at (0,0) width 225: "Value set by User that should be Restored"
index e34c3d769645d0c482b225b55d651399c8b1a458..059247d6b6a25abead34a7d7ea6452bc12c09276 100644 (file)
@@ -56,7 +56,7 @@ layer at (0,0) size 800x600
                 RenderText {#text} at (18,229) size 130x37
                   text run at (18,229) width 130: " option #2"
                 RenderBR {BR} at (148,258) size 0x0
-                RenderMenuList {SELECT} at (2,268) size 255x18
+                RenderMenuList {SELECT} at (2,268) size 255x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 224x13
                     RenderText at (0,0) size 63x13
                       text run at (0,0) width 63: "Initial Value"
index d7bb128b086a2144450413307f6450c24b2789e2..f19626923e4e6b4b002e181c534648864f556457 100644 (file)
@@ -19,7 +19,7 @@ layer at (0,0) size 800x600
                       text run at (49,5) width 127: "Search the Web with"
                 RenderText {#text} at (176,3) size 4x18
                   text run at (176,3) width 4: " "
-                RenderMenuList {SELECT} at (182,4) size 80x18
+                RenderMenuList {SELECT} at (182,4) size 80x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 49x13
                     RenderText at (0,0) size 49x13
                       text run at (0,0) width 49: "Netscape"
index 16ebe844c5bd33acfaca94147fd697610e4fc0de..3fe5fc0f20c0d6ea4226b308d6e96000232b44ee 100644 (file)
@@ -28,7 +28,7 @@ layer at (0,0) size 800x600
                   RenderText {#text} at (1,1) size 105x18
                     text run at (1,1) width 105: "Run Test Case:"
               RenderTableCell {TD} at (111,29) size 467x24 [r=1 c=1 rs=1 cs=1]
-                RenderMenuList {SELECT} at (3,3) size 262x18
+                RenderMenuList {SELECT} at (3,3) size 262x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 231x13
                     RenderText at (0,0) size 73x13
                       text run at (0,0) width 73: "a_abortinstall"
index 318dfb0b0f2dbcbbc46a59bbd0ce89b5bf7f0b76..e3304a490a469b236532f5c8200091172e77093d 100644 (file)
@@ -66,7 +66,7 @@ layer at (0,0) size 785x680
         RenderBlock {P} at (0,0) size 769x45
           RenderText {#text} at (0,2) size 263x18
             text run at (0,2) width 263: "How does your browser fare on this test? "
-          RenderMenuList {SELECT} at (265,3) size 246x18
+          RenderMenuList {SELECT} at (265,3) size 246x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 215x13
               RenderText at (0,0) size 140x13
                 text run at (0,0) width 140: "The test renders correctly."
index cce81cee0dad50e439f762eca0403193939538a0..4c450f1502224dc0e194781fa2697580da29d333 100644 (file)
@@ -184,7 +184,7 @@ layer at (0,0) size 785x2526
         RenderBlock {P} at (0,0) size 769x45
           RenderText {#text} at (0,1) size 263x18
             text run at (0,1) width 263: "How does your browser fare on this test? "
-          RenderMenuList {SELECT} at (265,2) size 473x18
+          RenderMenuList {SELECT} at (265,2) size 473x18 [bgcolor=#FFFFFF]
             RenderBlock (anonymous) at (8,2) size 442x13
               RenderText at (0,0) size 442x13
                 text run at (0,0) width 442: "The tests all render identically, and this browser may or may not grok CSS2 tables."
index 14802ebbf4db743f5df093c8a0df4c7f42eae72a..59fad87483fed16d7ab523abc86879b725bbc059 100644 (file)
@@ -8,7 +8,7 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 398x42
             RenderTableCell {TD} at (2,2) size 394x42 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderBlock {FORM} at (2,2) size 390x22
-                RenderMenuList {SELECT} at (2,2) size 54x18
+                RenderMenuList {SELECT} at (2,2) size 54x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 23x13
                     RenderText at (0,0) size 23x13
                       text run at (0,0) width 23: "Test"
index 79528a281c1e16c43337ae59fc8766860b92636d..463b2d12b775921422c30ad760fff47f5a98664d 100644 (file)
@@ -31,7 +31,7 @@ layer at (0,0) size 800x600
                     RenderText at (0,0) size 47x13
                       text run at (0,0) width 47: "Move to:"
               RenderTableCell {TD} at (666,2) size 116x24 [r=0 c=5 rs=1 cs=1]
-                RenderMenuList {SELECT} at (3,3) size 110x18
+                RenderMenuList {SELECT} at (3,3) size 110x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 79x13
                     RenderText at (0,0) size 78x13
                       text run at (0,0) width 78: "Choose folder "
index b82d229ebf108db37b691b81e7f8e0e066fa48bb..9968d71b6fbc33cfe7b03b31ecd2b65bb41ed948 100644 (file)
@@ -16,7 +16,7 @@ layer at (0,0) size 800x600
         RenderTextField {INPUT} at (53,2) size 134x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
         RenderText {#text} at (189,2) size 4x18
           text run at (189,2) width 4: " "
-        RenderMenuList {SELECT} at (195,3) size 77x18
+        RenderMenuList {SELECT} at (195,3) size 77x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 46x13
             RenderText at (0,0) size 32x13
               text run at (0,0) width 32: "Excite"
@@ -27,7 +27,7 @@ layer at (0,0) size 800x600
           text run at (0,18) width 264: "The select should not contain blank items "
         RenderBR {BR} at (264,32) size 0x0
       RenderBlock {FORM} at (0,93) size 784x22
-        RenderMenuList {SELECT} at (2,2) size 230x18
+        RenderMenuList {SELECT} at (2,2) size 230x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 199x13
             RenderText at (0,0) size 57x13
               text run at (0,0) width 57: "Quick Link"
index 6674aa30d58db88966ecafdaeb286237da071508..c5f1a5f7f11254e5024e0a823e8645be1a1a2774 100644 (file)
@@ -31,7 +31,7 @@ layer at (0,0) size 999x585
                         RenderTableSection {TBODY} at (2,2) size 187x30
                           RenderTableRow {TR} at (0,2) size 187x26
                             RenderTableCell {TD} at (2,2) size 183x26 [border: (1px solid #C0C0C0)] [r=0 c=0 rs=1 cs=1]
-                              RenderMenuList {SELECT} at (4,4) size 175x18
+                              RenderMenuList {SELECT} at (4,4) size 175x18 [bgcolor=#FFFFFF]
                                 RenderBlock (anonymous) at (8,2) size 144x13
                                   RenderText at (0,0) size 144x13
                                     text run at (0,0) width 144: "USE THIS JAVASCRIPT HERE"
index 24f5a56e679f73cef29f2a6a5514d16cbddb1e8c..f590583511756bc865a81f922523af3d088b7e10 100644 (file)
@@ -11,7 +11,7 @@ layer at (0,0) size 800x600
           RenderTableRow {TR} at (0,2) size 398x42
             RenderTableCell {TD} at (2,2) size 394x42 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
               RenderBlock {FORM} at (2,2) size 390x22
-                RenderMenuList {SELECT} at (2,2) size 54x18
+                RenderMenuList {SELECT} at (2,2) size 54x18 [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 23x13
                     RenderText at (0,0) size 23x13
                       text run at (0,0) width 23: "Test"
index 8eccae107fddfd9006ec148f62ab425b4e4f8ca5..58771b05ca382d6eb843cc36f9c63562a268bf9c 100644 (file)
@@ -4,7 +4,7 @@ layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
       RenderBlock {FORM} at (0,0) size 784x23
-        RenderMenuList {SELECT} at (2,3) size 95x18
+        RenderMenuList {SELECT} at (2,3) size 95x18 [bgcolor=#FFFFFF]
           RenderBlock (anonymous) at (8,2) size 64x13
             RenderText at (0,0) size 62x13
               text run at (0,0) width 62: "append cell"
index 60297c28e40bbae5a12063ecc447ee012e859374..cb885ab0c205d1f36c2825408e1c9d6e67522a86 100644 (file)
@@ -134,7 +134,7 @@ layer at (8,8) size 769x1776
               RenderBlock {P} at (1,17) size 458x63
                 RenderText {#text} at (0,0) size 259x18
                   text run at (0,0) width 259: "How does your browser fare on this test?"
-                RenderMenuList {SELECT} at (2,20) size 454x18 [color=#000000]
+                RenderMenuList {SELECT} at (2,20) size 454x18 [color=#000000] [bgcolor=#FFFFFF]
                   RenderBlock (anonymous) at (8,2) size 423x13
                     RenderText at (0,0) size 214x13
                       text run at (0,0) width 214: "Document renders exactly as described."
index e94a15704162fe2bbbf1d502c72f3b02da1a9b06..22a98038194aef1d010bb959a790e1832596b130 100644 (file)
@@ -1,3 +1,67 @@
+2006-08-25  Adele Peterson  <adele@apple.com>
+
+        Reviewed by Hyatt.
+
+        Enable styling for popup menus. Also fixed baseline calculation for buttons and selects.
+
+        Tests:   fast/forms/select-baseline.html
+                 fast/borders/borderRadiusInvalidColor.html
+        updated: fast/forms/select-style-expected.txt and more...
+
+        * css/html4.css: Added style rules for styled select elements.
+
+        * platform/GraphicsContext.h: Added argument for antialiasing.
+        * platform/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::drawConvexPolygon): ditto.
+        * platform/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::drawConvexPolygon): ditto.
+
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::drawBorderArc): Added textColor argument so this can be used when the border color is invalid.
+        (WebCore::RenderObject::drawBorder): Removed invalidisInvert since its dead code 
+         (any callers that set this to true were already ensuring that their color was valid).
+         Updated drawConvexPolygon call to use FloatPoints instead of IntPoints.
+        (WebCore::RenderObject::paintBorder): Updated to remove invalidisInvert argument from drawBorder call.
+        (WebCore::RenderObject::paintOutline): ditto.
+        * rendering/RenderFlow.cpp: (WebCore::RenderFlow::paintOutlineForLine): ditto.
+        * rendering/RenderObject.h: Updated arguments for drawBorder and drawBorderArc.
+
+        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::getBaselineOfLastLineBox): Changed isRootLineBox argument to true when setting line height.
+          Added case for when there's no children to check for hasLineIfEmpty.
+        * rendering/RenderBlock.h:
+        * rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Changed isRootLineBox argument to true when setting line height.
+        * rendering/RenderButton.h: (WebCore::RenderButton::hasLineIfEmpty): Added so buttons always get a line height.
+        * rendering/RenderMenuList.h: (WebCore::RenderMenuList::hasLineIfEmpty): ditto.
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::layoutHorizontalBox): Added code to check hasLineIfEmpty to give flex boxes line height.
+        (WebCore::RenderFlexibleBox::layoutVerticalBox): ditto.
+
+        * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle): Moved the appearance adjustment code into adjust style.
+        * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBoxDecorations): Lets the theme paint "decorations", like the arrow control and gradients
+         immediately after painting the background.
+
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::adjustStyle): This now checks whether the control is styled, and adjusts the appearance property appropriately.
+        For styled selects, instead of setting the appearance to none, which is what we do for other styled controls, we set the appearance
+        to MenulistButtonAppearance, which indicates that we will draw the arrow controls and button appearance in the engine.
+        (WebCore::RenderTheme::paintDecorations): Added. Paints MenulistButtonAppearance in a different function, 
+         so the arrow control will draw at the right time (after the background).
+        (WebCore::RenderTheme::paint): Added case for MenulistButtonAppearance.
+        (WebCore::RenderTheme::paintBorderOnly): ditto.
+        (WebCore::RenderTheme::isControlContainer): Removed cases for MenuListAppearance and MenulistButtonAppearance since the baseline is no longer provided by the theme.
+        (WebCore::RenderTheme::adjustMenuListButtonStyle): Added.
+        * rendering/RenderTheme.h: (WebCore::RenderTheme::paintMenuListButton): Added.
+
+        * rendering/RenderThemeMac.h:
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::isControlStyled): Removed code that made selects unstyle-able.
+        (WebCore::RenderThemeMac::baselinePosition): Removed cases for MenuListAppearance and MenulistButtonAppearance.
+        (WebCore::RenderThemeMac::popupButtonPadding): Added top and bottom padding so empty popups have the right baseline.
+        (WebCore::TopGradientInterpolate): Added.
+        (WebCore::BottomGradientInterpolate): Added.
+        (WebCore::MainGradientInterpolate): Added.
+        (WebCore::RenderThemeMac::paintMenuListButtonGradients): Added.  Draws gradients for styled popup menu button appearance.
+        (WebCore::RenderThemeMac::paintMenuListButton): Calls paintMenuListButtonGradients, and draws arrow control.
+        (WebCore::RenderThemeMac::adjustMenuListButtonStyle): Added to set padding and border radius to account for the arrow control size and font size.
+
 2006-08-25  Brady Eidson  <beidson@apple.com>
 
         Reviewed by Adam
index e094213f89b922259c0e9b24118cb404b8c5808b..9c90d6ac90e630107d01e2b3cdbf1f7a407f6e75 100644 (file)
                0867D690FE84028FC02AAC07 /* Project object */ = {
                        isa = PBXProject;
                        buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
-                       compatibilityVersion = "Xcode 2.4";
                        hasScannedForEncodings = 1;
                        knownRegions = (
                                English,
                        mainGroup = 0867D691FE84028FC02AAC07 /* WebKit */;
                        productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
                        projectDirPath = "";
-                       projectRoot = "";
-                       shouldCheckCompatibility = 1;
                        targets = (
                                93F198A508245E59001E9ABC /* WebCore */,
                                DD041FBE09D9DDBE0010AF2A /* Derived Sources */,
index 3f9a8a517e7fca736c4a2bee364dc5c3e4e47b07..53576deaed24b5b0f109ecdbc9c75074d6b12c98 100644 (file)
@@ -1079,12 +1079,8 @@ void CSSStyleSelector::adjustRenderStyle(RenderStyle* style, Element *e)
     style->adjustBackgroundLayers();
 
     // Let the theme also have a crack at adjusting the style.
-    if (style->hasAppearance()) {
-        if (m_hasUAAppearance && theme()->isControlStyled(style, m_borderData, m_backgroundData, m_backgroundColor))
-            style->setAppearance(NoAppearance);
-        else
-            theme()->adjustStyle(this, style, e);
-    }
+    if (style->hasAppearance())
+        theme()->adjustStyle(this, style, e, m_hasUAAppearance, m_borderData, m_backgroundData, m_backgroundColor);
     
 #ifdef SVG_SUPPORT
     if (e && e->isSVGElement()) {
index 8d93842fc6f2593ebf82b507eeb36b077876d42b..a07370a796a2c12767c2536d4ccaf437346f24c4 100644 (file)
@@ -367,7 +367,7 @@ input[type="button"], input[type="submit"], input[type="reset"], button {
     box-sizing: border-box
 }
 
-input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled, button:disabled {
+input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled, button:disabled, select:disabled {
     color: GrayText
 }
 
@@ -402,14 +402,23 @@ select {
     box-sizing: border-box;
     -webkit-box-align: center;
     -webkit-rtl-ordering: logical;
+    color: black;
+    border: 1px solid;
+    -webkit-border-radius: 5px;
+    background-color: white;
+    white-space: pre;
 }
 
 select[size],
 select[multiple],
 select[size][multiple] {
+    // FIXME: When converting the list box implementation, remove these.
     -webkit-appearance: none;
     -webkit-box-align: initial;
     box-sizing: initial;
+    color: initial;
+    border: initial;
+    background-color: initial;
 }
  
 select[size="0"],
@@ -417,6 +426,10 @@ select[size="1"] {
     -webkit-appearance: menulist;
     box-sizing: border-box;
     -webkit-box-align: center;
+    color: black;
+    border: 1px solid;
+    -webkit-border-radius: 5px;
+    background-color: white;
 }
 
 optgroup {
index 03f2e38d710a09a906b674628e6c1e2490f27c1b..0499e0a4a353a8b671d92abcbcd33f08489a5686 100644 (file)
@@ -93,7 +93,7 @@ namespace WebCore {
         void drawLine(const IntPoint&, const IntPoint&);
         void drawEllipse(const IntRect&);
         void drawArc(const IntRect&, float thickness, int startAngle, int angleSpan);
-        void drawConvexPolygon(size_t numPoints, const IntPoint*);
+        void drawConvexPolygon(size_t numPoints, const FloatPoint*, bool shouldAntialias = false);
 
         void fillRect(const IntRect&, const Color&);
         void fillRect(const FloatRect&, const Color&);
index a2e67d11f8b6724dec0369e5985f5cdaedafa3e5..7aca7908af995fd28c733b71e167b3c2da3f8724 100644 (file)
@@ -317,7 +317,7 @@ void GraphicsContext::drawArc(const IntRect& rect, float thickness, int startAng
     }
 }
 
-void GraphicsContext::drawConvexPolygon(size_t npoints, const IntPoint* points)
+void GraphicsContext::drawConvexPolygon(size_t npoints, const IntPoint* points, bool shouldAntialias)
 {
     if (paintingDisabled())
         return;
@@ -328,7 +328,7 @@ void GraphicsContext::drawConvexPolygon(size_t npoints, const IntPoint* points)
     cairo_t* context = m_data->context;
 
     cairo_save(context);
-    cairo_set_antialias(context, CAIRO_ANTIALIAS_NONE);
+    cairo_set_antialias(context, shouldAntialias ? CAIRO_ANTIALIAS_DEFAULT : CAIRO_ANTIALIAS_NONE);
     cairo_move_to(context, points[0].x(), points[0].y());
     for (size_t i = 1; i < npoints; i++)
         cairo_line_to(context, points[i].x(), points[i].y());
index 150917aaa1ee9436bbb2869b39d40ce1ead82396..87d211e41c13b4f924077c9592d964fb9fc3fa08 100644 (file)
@@ -386,7 +386,7 @@ void GraphicsContext::drawArc(const IntRect& rect, float thickness, int startAng
     CGContextRestoreGState(context);
 }
 
-void GraphicsContext::drawConvexPolygon(size_t npoints, const IntPoint* points)
+void GraphicsContext::drawConvexPolygon(size_t npoints, const FloatPoint* points, bool shouldAntialias)
 {
     if (paintingDisabled())
         return;
@@ -398,7 +398,7 @@ void GraphicsContext::drawConvexPolygon(size_t npoints, const IntPoint* points)
 
     CGContextSaveGState(context);
 
-    CGContextSetShouldAntialias(context, false);
+    CGContextSetShouldAntialias(context, shouldAntialias);
     
     CGContextBeginPath(context);
     CGContextMoveToPoint(context, points[0].x(), points[0].y());
index bf71444c05c6568ad116fa029f6d7f71fb1c4886..ef46b24832c8c895df88dcdfc338f3b9db1b34f1 100644 (file)
@@ -3331,19 +3331,23 @@ int RenderBlock::getBaselineOfLastLineBox() const
 
     if (childrenInline()) {
         if (!firstLineBox() && hasLineIfEmpty())
-            return RenderFlow::baselinePosition(true) + borderTop() + paddingTop();
+            return RenderFlow::baselinePosition(true, true) + borderTop() + paddingTop();
         if (m_lastLineBox)
             return m_lastLineBox->yPos() + m_lastLineBox->baseline();
         return -1;
     }
     else {
+        bool haveNormalFlowChild = false;
         for (RenderObject* curr = lastChild(); curr; curr = curr->previousSibling()) {
             if (!curr->isFloatingOrPositioned()) {
+                haveNormalFlowChild = true;
                 int result = curr->getBaselineOfLastLineBox();
                 if (result != -1)
                     return curr->yPos() + result; // Translate to our coordinate space.
             }
         }
+        if (!haveNormalFlowChild && hasLineIfEmpty())
+            return RenderFlow::baselinePosition(true, true) + borderTop() + paddingTop();
     }
 
     return -1;
index 244e8a858cbd308e75b843364ee3943876898393..7fbc7220470d2848e5c07558908f0e7c11bfd15d 100644 (file)
@@ -278,13 +278,12 @@ public:
 
 protected:
     void newLine();
+    virtual bool hasLineIfEmpty() const;
 
 private:
     Position positionForBox(InlineBox *box, bool start=true) const;
     Position positionForRenderer(RenderObject *renderer, bool start=true) const;
-    
-    bool hasLineIfEmpty() const;
-    
+        
 protected:
     struct FloatingObject {
         enum Type {
index 948553305e6d492d2724b024f197c37f4c2eb085..cfdcdcc8c83afba1c4dbcc08974ada742af12950 100644 (file)
@@ -368,6 +368,8 @@ void RenderBox::paintBoxDecorations(PaintInfo& i, int _tx, int _ty)
         // since the root could be inline and wrapped in an anonymous block.
         if (!isBody() || !document()->isHTMLDocument() || document()->documentElement()->renderer()->style()->hasBackground())
             paintBackgrounds(i.p, style()->backgroundColor(), style()->backgroundLayers(), my, mh, _tx, _ty, w, h);
+        if (style()->hasAppearance())
+            theme()->paintDecorations(this, i, IntRect(_tx, _ty, w, h));
     }
     
     // The theme will tell us whether or not we should also paint the CSS border.
index 7d655772fa78e2cddd46d3b7a7f22d411f84956c..06a6b4376263ad6bce83dbf05b2ec6dbbb1c893a 100644 (file)
@@ -50,6 +50,8 @@ public:
     virtual const char* renderName() const { return "RenderButton"; }
 
 protected:
+    virtual bool hasLineIfEmpty() const { return true; }
+
     RenderText* m_buttonText;
     RenderBlock* m_inner;
 };
index e7f7ad7fa354016fa4d96194d5a8ff8de8cc793c..c30ce58aa8944deb60921b6a6429df263cfb4266 100644 (file)
@@ -284,7 +284,7 @@ void RenderFlexibleBox::layoutBlock(bool relayoutChildren)
         layoutHorizontalBox(relayoutChildren);
     else
         layoutVerticalBox(relayoutChildren);
-    
+
     int oldHeight = m_height;
     calcHeight();
     if (oldHeight != m_height) {
@@ -418,6 +418,10 @@ void RenderFlexibleBox::layoutHorizontalBox(bool relayoutChildren)
 
             child = iterator.next();
         }
+        
+        if (!iterator.first() && hasLineIfEmpty())
+            m_height += lineHeight(true, true);
+        
         m_height += toAdd;
 
         // Always make sure our overflowheight is at least our height.
@@ -873,6 +877,10 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren)
         }
 
         yPos = m_height;
+        
+        if (!iterator.first() && hasLineIfEmpty())
+            m_height += lineHeight(true, true);
+    
         m_height += toAdd;
 
         // Negative margins can cause our height to shrink below our minimal height (border/padding).
@@ -1043,7 +1051,7 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren)
     // So that the calcHeight in layoutBlock() knows to relayout positioned objects because of
     // a height change, we revert our height back to the intrinsic height before returning.
     if (heightSpecified)
-        m_height = oldHeight;    
+        m_height = oldHeight; 
 }
 
 void RenderFlexibleBox::placeChild(RenderObject* child, int x, int y)
index 3bdc39107724179b02c4141813eded7ee75cc31b..209504c1684052730ebfd92ac5ffbc2c77a9fab0 100644 (file)
@@ -742,8 +742,7 @@ void RenderFlow::paintOutlineForLine(GraphicsContext* p, int tx, int ty, const I
                BSLeft,
                oc, style()->color(), os,
                (lastline.isEmpty() || thisline.x() < lastline.x() || (lastline.right() - 1) <= thisline.x() ? ow : -ow),
-               (nextline.isEmpty() || thisline.x() <= nextline.x() || (nextline.right() - 1) <= thisline.x() ? ow : -ow),
-               true);
+               (nextline.isEmpty() || thisline.x() <= nextline.x() || (nextline.right() - 1) <= thisline.x() ? ow : -ow));
     
     // right edge
     drawBorder(p,
@@ -754,8 +753,7 @@ void RenderFlow::paintOutlineForLine(GraphicsContext* p, int tx, int ty, const I
                BSRight,
                oc, style()->color(), os,
                (lastline.isEmpty() || lastline.right() < thisline.right() || (thisline.right() - 1) <= lastline.x() ? ow : -ow),
-               (nextline.isEmpty() || nextline.right() <= thisline.right() || (thisline.right() - 1) <= nextline.x() ? ow : -ow),
-               true);
+               (nextline.isEmpty() || nextline.right() <= thisline.right() || (thisline.right() - 1) <= nextline.x() ? ow : -ow));
     // upper edge
     if (thisline.x() < lastline.x())
         drawBorder(p,
@@ -765,8 +763,7 @@ void RenderFlow::paintOutlineForLine(GraphicsContext* p, int tx, int ty, const I
                    t ,
                    BSTop, oc, style()->color(), os,
                    ow,
-                   (!lastline.isEmpty() && tx + lastline.x() + 1 < r + ow) ? -ow : ow,
-                   true);
+                   (!lastline.isEmpty() && tx + lastline.x() + 1 < r + ow) ? -ow : ow);
     
     if (lastline.right() < thisline.right())
         drawBorder(p,
@@ -776,8 +773,7 @@ void RenderFlow::paintOutlineForLine(GraphicsContext* p, int tx, int ty, const I
                    t ,
                    BSTop, oc, style()->color(), os,
                    (!lastline.isEmpty() && l - ow < tx + lastline.right()) ? -ow : ow,
-                   ow,
-                   true);
+                   ow);
     
     // lower edge
     if (thisline.x() < nextline.x())
@@ -788,8 +784,7 @@ void RenderFlow::paintOutlineForLine(GraphicsContext* p, int tx, int ty, const I
                    b + ow,
                    BSBottom, oc, style()->color(), os,
                    ow,
-                   (!nextline.isEmpty() && tx + nextline.x() + 1 < r + ow) ? -ow : ow,
-                   true);
+                   (!nextline.isEmpty() && tx + nextline.x() + 1 < r + ow) ? -ow : ow);
     
     if (nextline.right() < thisline.right())
         drawBorder(p,
@@ -799,8 +794,7 @@ void RenderFlow::paintOutlineForLine(GraphicsContext* p, int tx, int ty, const I
                    b + ow,
                    BSBottom, oc, style()->color(), os,
                    (!nextline.isEmpty() && l - ow < tx + nextline.right()) ? -ow : ow,
-                   ow,
-                   true);
+                   ow);
 }
 
 }
index 002c832b9a24a09cc2e7f53b4630f539acf55a72..85656cd6f9cad7a45017effbb8eae413fcaa3a7c 100644 (file)
@@ -61,6 +61,9 @@ public:
 
     String text();
 
+protected:
+    virtual bool hasLineIfEmpty() const { return true; }
+
 private:
     void createInnerBlock();
     void setText(const String&);
index 9fccfdbafbc8cabd1143740bedae662b94317a57..41e158207f780e6d48ab053ee63ec82d70710140 100644 (file)
@@ -811,12 +811,19 @@ bool RenderObject::mustRepaintBackgroundOrBorder() const
 }
 
 void RenderObject::drawBorderArc(GraphicsContext* p, int x, int y, float thickness, IntSize radius, int angleStart, 
-    int angleSpan, BorderSide s, Color c, EBorderStyle style, bool firstCorner)
+    int angleSpan, BorderSide s, Color c, const Color& textColor, EBorderStyle style, bool firstCorner)
 {
     if ((style == DOUBLE && ((thickness / 2) < 3)) || 
         ((style == RIDGE || style == GROOVE) && ((thickness / 2) < 2)))
         style = SOLID;
     
+    if (!c.isValid()) {
+        if (style == INSET || style == OUTSET || style == RIDGE || style == GROOVE)
+            c.setRGB(238, 238, 238);
+        else
+            c = textColor;
+    }
+    
     switch (style) {
         case BNONE:
         case BHIDDEN:
@@ -896,7 +903,7 @@ void RenderObject::drawBorderArc(GraphicsContext* p, int x, int y, float thickne
 
 void RenderObject::drawBorder(GraphicsContext* p, int x1, int y1, int x2, int y2,
                               BorderSide s, Color c, const Color& textcolor, EBorderStyle style,
-                              int adjbw1, int adjbw2, bool invalidisInvert)
+                              int adjbw1, int adjbw2)
 {
     int width = (s == BSTop || s == BSBottom ? y2 - y1 : x2 - x1);
 
@@ -904,15 +911,10 @@ void RenderObject::drawBorder(GraphicsContext* p, int x1, int y1, int x2, int y2
         style = SOLID;
 
     if (!c.isValid()) {
-        if (invalidisInvert)
-            // FIXME: The original KHTML did XOR here -- what do we want to do instead?
-            c = Color::white;
-        else {
-            if (style == INSET || style == OUTSET || style == RIDGE || style == GROOVE)
-                c.setRGB(238, 238, 238);
-            else
-                c = textcolor;
-        }
+        if (style == INSET || style == OUTSET || style == RIDGE || style == GROOVE)
+            c.setRGB(238, 238, 238);
+        else
+            c = textcolor;
     }
 
     switch(style)
@@ -1072,31 +1074,31 @@ void RenderObject::drawBorder(GraphicsContext* p, int x1, int y1, int x2, int y2
             p->drawRect(IntRect(x1, y1, x2 - x1, y2 - y1));
             return;
         }
-        IntPoint quad[4];
+        FloatPoint quad[4];
         switch (s) {
             case BSTop:
-                quad[0] = IntPoint(x1 + max(-adjbw1, 0), y1);
-                quad[1] = IntPoint(x1 + max( adjbw1, 0), y2);
-                quad[2] = IntPoint(x2 - max( adjbw2, 0), y2);
-                quad[3] = IntPoint(x2 - max(-adjbw2, 0), y1);
+                quad[0] = FloatPoint(x1 + max(-adjbw1, 0), y1);
+                quad[1] = FloatPoint(x1 + max( adjbw1, 0), y2);
+                quad[2] = FloatPoint(x2 - max( adjbw2, 0), y2);
+                quad[3] = FloatPoint(x2 - max(-adjbw2, 0), y1);
                 break;
             case BSBottom:
-                quad[0] = IntPoint(x1 + max( adjbw1, 0), y1);
-                quad[1] = IntPoint(x1 + max(-adjbw1, 0), y2);
-                quad[2] = IntPoint(x2 - max(-adjbw2, 0), y2);
-                quad[3] = IntPoint(x2 - max( adjbw2, 0), y1);
+                quad[0] = FloatPoint(x1 + max( adjbw1, 0), y1);
+                quad[1] = FloatPoint(x1 + max(-adjbw1, 0), y2);
+                quad[2] = FloatPoint(x2 - max(-adjbw2, 0), y2);
+                quad[3] = FloatPoint(x2 - max( adjbw2, 0), y1);
                 break;
             case BSLeft:
-                quad[0] = IntPoint(x1, y1 + max(-adjbw1, 0));
-                quad[1] = IntPoint(x1, y2 - max(-adjbw2, 0));
-                quad[2] = IntPoint(x2, y2 - max( adjbw2, 0));
-                quad[3] = IntPoint(x2, y1 + max( adjbw1, 0));
+                quad[0] = FloatPoint(x1, y1 + max(-adjbw1, 0));
+                quad[1] = FloatPoint(x1, y2 - max(-adjbw2, 0));
+                quad[2] = FloatPoint(x2, y2 - max( adjbw2, 0));
+                quad[3] = FloatPoint(x2, y1 + max( adjbw1, 0));
                 break;
             case BSRight:
-                quad[0] = IntPoint(x1, y1 + max( adjbw1, 0));
-                quad[1] = IntPoint(x1, y2 - max( adjbw2, 0));
-                quad[2] = IntPoint(x2, y2 - max(-adjbw2, 0));
-                quad[3] = IntPoint(x2, y1 + max(-adjbw1, 0));
+                quad[0] = FloatPoint(x1, y1 + max( adjbw1, 0));
+                quad[1] = FloatPoint(x1, y2 - max( adjbw2, 0));
+                quad[2] = FloatPoint(x2, y2 - max(-adjbw2, 0));
+                quad[3] = FloatPoint(x2, y1 + max(-adjbw1, 0));
                 break;
         }
         p->drawConvexPolygon(4, quad);
@@ -1323,7 +1325,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw upper left arc
             drawBorderArc(p, leftX, leftY, thickness, topLeft, firstAngleStart, firstAngleSpan,
-                BSTop, tc, ts, true);
+                BSTop, tc, style->color(), ts, true);
             if (applyLeftInnerClip)
                 p->restore();
             
@@ -1338,7 +1340,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw upper right arc
             drawBorderArc(p, rightX, leftY, thickness, topRight, secondAngleStart, secondAngleSpan,
-                BSTop, tc, ts, false);
+                BSTop, tc, style->color(), ts, false);
             if (applyRightInnerClip)
                 p->restore();
         }
@@ -1393,7 +1395,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw lower left arc
             drawBorderArc(p, leftX, leftY, thickness, bottomLeft, firstAngleStart, firstAngleSpan,
-                BSBottom, bc, bs, true);
+                BSBottom, bc, style->color(), bs, true);
             if (applyLeftInnerClip)
                 p->restore();
                 
@@ -1408,7 +1410,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw lower right arc
             drawBorderArc(p, rightX, leftY, thickness, bottomRight, secondAngleStart, secondAngleSpan,
-                BSBottom, bc, bs, false);
+                BSBottom, bc, style->color(), bs, false);
             if (applyRightInnerClip)
                 p->restore();
         }
@@ -1456,7 +1458,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw top left arc
             drawBorderArc(p, topX, topY, thickness, topLeft, firstAngleStart, firstAngleSpan,
-                BSLeft, lc, ls, true);
+                BSLeft, lc, style->color(), ls, true);
             if (applyTopInnerClip)
                 p->restore();
             
@@ -1471,7 +1473,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw bottom left arc
             drawBorderArc(p, topX, bottomY, thickness, bottomLeft, secondAngleStart, secondAngleSpan,
-                BSLeft, lc, ls, false);
+                BSLeft, lc, style->color(), ls, false);
             if (applyBottomInnerClip)
                 p->restore();
         }
@@ -1519,7 +1521,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw top right arc
             drawBorderArc(p, topX, topY, thickness, topRight, firstAngleStart, firstAngleSpan,
-                BSRight, rc, rs, true);
+                BSRight, rc, style->color(), rs, true);
             if (applyTopInnerClip)
                 p->restore();
             
@@ -1534,7 +1536,7 @@ void RenderObject::paintBorder(GraphicsContext* p, int _tx, int _ty, int w, int
             
             // Draw bottom right arc
             drawBorderArc(p, topX, bottomY, thickness, bottomRight, secondAngleStart, secondAngleSpan,
-                BSRight, rc, rs, false);
+                BSRight, rc, style->color(), rs, false);
             if (applyBottomInnerClip)
                 p->restore();
         }
@@ -1647,19 +1649,19 @@ void RenderObject::paintOutline(GraphicsContext* p, int _tx, int _ty, int w, int
     
     drawBorder(p, _tx-ow, _ty-ow, _tx, _ty+h+ow, BSLeft,
                Color(oc), style->color(),
-               os, ow, ow, true);
+               os, ow, ow);
 
     drawBorder(p, _tx-ow, _ty-ow, _tx+w+ow, _ty, BSTop,
                Color(oc), style->color(),
-               os, ow, ow, true);
+               os, ow, ow);
 
     drawBorder(p, _tx+w, _ty-ow, _tx+w+ow, _ty+h+ow, BSRight,
                Color(oc), style->color(),
-               os, ow, ow, true);
+               os, ow, ow);
 
     drawBorder(p, _tx-ow, _ty+h, _tx+w+ow, _ty+h+ow, BSBottom,
                Color(oc), style->color(),
-               os, ow, ow, true);
+               os, ow, ow);
 
 }
 
index 51e52763a013d5f08d57569eeaf48d608cc12165..8702a3c399ee21bb1abd06946d374036899d6d6c 100644 (file)
@@ -702,9 +702,9 @@ public:
         BSTop, BSBottom, BSLeft, BSRight
     };
     void drawBorderArc(GraphicsContext*, int x, int y, float thickness, IntSize radius, int angleStart,
-        int angleSpan, BorderSide, Color, EBorderStyle, bool firstCorner);
+        int angleSpan, BorderSide, Color, const Color& textcolor, EBorderStyle, bool firstCorner);
     void drawBorder(GraphicsContext*, int x1, int y1, int x2, int y2, BorderSide,
-        Color, const Color& textcolor, EBorderStyle, int adjbw1, int adjbw2, bool invalidisInvert = false);
+        Color, const Color& textcolor, EBorderStyle, int adjbw1, int adjbw2);
 
     virtual void setTable(RenderTable*) {};
 
index 0a049ee6d242e263ceabcba3d148062d93f04df0..a65d22df21ac6c76bdd24823e916c5ee8a0076c5 100644 (file)
@@ -35,8 +35,10 @@ namespace WebCore {
 
 using namespace HTMLNames;
 
-void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e)
+void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e, 
+                              bool UAHasAppearance, const BorderData& border, const BackgroundLayer& background, const Color& backgroundColor)
 {
+
     // Force inline and table display styles to be inline-block (except for table- which is block)
     if (style->display() == INLINE || style->display() == INLINE_TABLE || style->display() == TABLE_ROW_GROUP || 
         style->display() == TABLE_HEADER_GROUP || style->display() == TABLE_FOOTER_GROUP ||
@@ -46,6 +48,13 @@ void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, El
     else if (style->display() == COMPACT || style->display() == RUN_IN || style->display() == LIST_ITEM || style->display() == TABLE)
         style->setDisplay(BLOCK);
     
+    if (UAHasAppearance && theme()->isControlStyled(style, border, background, backgroundColor)) {
+        if (style->appearance() == MenulistAppearance)
+            style->setAppearance(MenulistButtonAppearance);
+        else
+            style->setAppearance(NoAppearance);
+    }
+
     // Call the appropriate style adjustment method based off the appearance value.
     switch (style->appearance()) {
         case CheckboxAppearance:
@@ -62,6 +71,8 @@ void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, El
             return adjustTextAreaStyle(selector, style, e);
         case MenulistAppearance:
             return adjustMenuListStyle(selector, style, e);
+        case MenulistButtonAppearance:
+            return adjustMenuListButtonStyle(selector, style, e);
         default:
             break;
     }
@@ -92,6 +103,7 @@ bool RenderTheme::paint(RenderObject* o, const RenderObject::PaintInfo& i, const
             return paintButton(o, i, r);
         case MenulistAppearance:
             return paintMenuList(o, i, r);
+        case MenulistButtonAppearance:
         case TextFieldAppearance:
         case TextAreaAppearance:
             return true;
@@ -113,6 +125,32 @@ bool RenderTheme::paintBorderOnly(RenderObject* o, const RenderObject::PaintInfo
             return paintTextField(o, i, r);
         case TextAreaAppearance:
             return paintTextArea(o, i, r);
+        case MenulistButtonAppearance:
+            return true;
+        case CheckboxAppearance:
+        case RadioAppearance:
+        case PushButtonAppearance:
+        case SquareButtonAppearance:
+        case ButtonAppearance:
+        case MenulistAppearance:
+        default:
+            break;
+    }
+    
+    return false;
+}
+
+bool RenderTheme::paintDecorations(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
+{
+    if (i.p->paintingDisabled())
+        return false;
+        
+    // Call the appropriate paint method based off the appearance value.
+    switch (o->style()->appearance()) {
+        case MenulistButtonAppearance:
+            return paintMenuListButton(o, i, r);
+        case TextFieldAppearance:
+        case TextAreaAppearance:
         case CheckboxAppearance:
         case RadioAppearance:
         case PushButtonAppearance:
@@ -173,7 +211,7 @@ bool RenderTheme::isControlContainer(EAppearance appearance) const
 {
     // There are more leaves than this, but we'll patch this function as we add support for
     // more controls.
-    return appearance != CheckboxAppearance && appearance != RadioAppearance && appearance != MenulistAppearance;
+    return appearance != CheckboxAppearance && appearance != RadioAppearance;
 }
 
 bool RenderTheme::isControlStyled(const RenderStyle* style, const BorderData& border, const BackgroundLayer& background,
@@ -316,4 +354,8 @@ void RenderTheme::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* s
 {
 }
 
+void RenderTheme::adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
+{
+}
+
 }
index 3977f38fd5d1fe8ec4797e0059019edded716f46..36834be1640e6e8f676a01909693c220db4dc3bf 100644 (file)
@@ -43,13 +43,15 @@ public:
     // metrics and defaults given the contents of the style.  This includes sophisticated operations like
     // selection of control size based off the font, the disabling of appearance when certain other properties like
     // "border" are set, or if the appearance is not supported by the theme.
-    void adjustStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e);
+    void adjustStyle(CSSStyleSelector*, RenderStyle*, Element*, 
+                    bool UAHasAppearance, const BorderData&, const BackgroundLayer&, const Color& backgroundColor);
     
     // This method is called to paint the widget as a background of the RenderObject.  A widget's foreground, e.g., the
     // text of a button, is always rendered by the engine itself.  The boolean return value indicates
     // whether the CSS border/background should also be painted.
     bool paint(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
     bool paintBorderOnly(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
+    bool paintDecorations(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
 
     // The remaining methods should be implemented by the platform-specific portion of the theme, e.g.,
     // RenderThemeMac.cpp for Mac OS X.
@@ -139,6 +141,8 @@ protected:
     virtual void adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const;
     virtual bool paintMenuList(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) { return true; }
 
+    virtual void adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const;
+    virtual bool paintMenuListButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) { return true; }
 };
 
 // Function to obtain the theme.  This is implemented in your platform-specific theme implementation to hand
index e67508a0252645e106170a5af80aff5d42fb878f..4f83039b929377a83c53c4607550d899e55679d4 100644 (file)
@@ -83,6 +83,9 @@ protected:
     virtual bool paintMenuList(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
     virtual void adjustMenuListStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
 
+    virtual bool paintMenuListButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
+    virtual void adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+    
 private:
     IntRect inflateRect(const IntRect&, const IntSize&, const int* margins) const;
 
@@ -119,6 +122,7 @@ private:
     const IntSize* popupButtonSizes() const;
     const int* popupButtonMargins() const;
     const int* popupButtonPadding(NSControlSize) const;
+    void paintMenuListButtonGradients(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
 
 private:
     NSButtonCell* checkbox;
index bd85e63a82cf250948c1db99ea7fde892caa907b..2f81530f232537d46d7c06f5f78dbe7d7abc252c 100644 (file)
@@ -144,9 +144,6 @@ bool RenderThemeMac::isControlStyled(const RenderStyle* style, const BorderData&
 {
     if (style->appearance() == TextFieldAppearance || style->appearance() == TextAreaAppearance)
         return style->border() != border;
-    // FIXME: We should allow menulists to be styled- but not until we have a good design for styled popups.
-    if (style->appearance() == MenulistAppearance)
-        return false;
     return RenderTheme::isControlStyled(style, border, background, backgroundColor);
 }
 
@@ -265,8 +262,6 @@ short RenderThemeMac::baselinePosition(const RenderObject* o) const
 {
     if (o->style()->appearance() == CheckboxAppearance || o->style()->appearance() == RadioAppearance)
         return o->marginTop() + o->height() - 2; // The baseline is 2px up from the bottom of the checkbox/radio in AppKit.
-    if (o->style()->appearance() == MenulistAppearance)
-        return o->marginTop() + o->height() - 5; // This is to match AppKit.  There might be a better way to calculate this though.
     return RenderTheme::baselinePosition(o);
 }
 
@@ -678,9 +673,9 @@ const int* RenderThemeMac::popupButtonPadding(NSControlSize size) const
 {
     static const int padding[3][4] = 
     {
-        { 0, 26, 0, 8 },
-        { 0, 23, 0, 8 },
-        { 0, 22, 0, 10 }
+        { 2, 26, 3, 8 },
+        { 2, 23, 3, 8 },
+        { 2, 22, 3, 10 }
     };
     return padding[size];
 }
@@ -709,6 +704,169 @@ bool RenderThemeMac::paintMenuList(RenderObject* o, const RenderObject::PaintInf
     return false;
 }
 
+const float baseFontSize = 11.0;
+const float baseArrowHeight = 4.0;
+const float baseArrowWidth = 5.0;
+const float baseSpaceBetweenArrows = 2.0;
+const int arrowPaddingLeft = 6;
+const int arrowPaddingRight = 6;
+const int paddingBeforeSeparator = 4;
+const int baseBorderRadius = 5;
+const int styledPopupPaddingLeft = 8;
+const int styledPopupPaddingTop = 1;
+const int styledPopupPaddingBottom = 2;
+
+static void TopGradientInterpolate( void *info, float const *inData, float *outData )
+{
+    static float dark[4] = { 1, 1, 1, 0.4 };
+    static float light[4] = { 1, 1, 1, 0.15 };
+    float a = inData[0];
+    int i = 0;
+    for( i = 0; i < 4; i++ )
+        outData[i] = ( 1.0 - a ) * dark[i] + a * light[i];
+}
+
+static void BottomGradientInterpolate( void *info, float const *inData, float *outData )
+{
+    static float dark[4] = { 1, 1, 1, 0 };
+    static float light[4] = { 1, 1, 1, 0.3 };
+    float a = inData[0];
+    int i = 0;
+    for( i = 0; i < 4; i++ )
+        outData[i] = ( 1.0 - a ) * dark[i] + a * light[i];
+}
+
+static void MainGradientInterpolate( void *info, float const *inData, float *outData )
+{
+    static float dark[4] = { 0, 0, 0, 0.15 };
+    static float light[4] = { 0, 0, 0, 0 };
+    float a = inData[0];
+    int i = 0;
+    for( i = 0; i < 4; i++ )
+        outData[i] = ( 1.0 - a ) * dark[i] + a * light[i];
+}
+
+void RenderThemeMac::paintMenuListButtonGradients(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
+{
+    CGContextRef context = i.p->platformContext();
+        
+    i.p->save();
+
+    int radius = o->style()->borderTopLeftRadius().width();
+    
+    CGColorSpaceRef cspace = CGColorSpaceCreateDeviceRGB();    
+
+    IntRect topGradient(r.x(), r.y(), r.width(), r.height() / 2.0);
+    struct CGFunctionCallbacks topCallbacks = { 0, TopGradientInterpolate, NULL };
+    CGFunctionRef topFunction = CGFunctionCreate( NULL, 1, NULL, 4, NULL, &topCallbacks );
+    CGShadingRef topShading = CGShadingCreateAxial( cspace, CGPointMake(topGradient.x(),  topGradient.y()), 
+                            CGPointMake(topGradient.x(), topGradient.bottom()), topFunction, false, false );
+
+    IntRect bottomGradient(r.x() + radius, r.y() + r.height() / 2.0, r.width() - 2 * radius, r.height() / 2.0);
+    struct CGFunctionCallbacks bottomCallbacks = { 0, BottomGradientInterpolate, NULL };
+    CGFunctionRef bottomFunction = CGFunctionCreate( NULL, 1, NULL, 4, NULL, &bottomCallbacks );
+    CGShadingRef bottomShading = CGShadingCreateAxial( cspace, CGPointMake(bottomGradient.x(),  bottomGradient.y()), 
+                            CGPointMake(bottomGradient.x(), bottomGradient.bottom()), bottomFunction, false, false );
+
+    struct CGFunctionCallbacks mainCallbacks = { 0, MainGradientInterpolate, NULL };
+    CGFunctionRef mainFunction = CGFunctionCreate( NULL, 1, NULL, 4, NULL, &mainCallbacks );
+    CGShadingRef mainShading = CGShadingCreateAxial( cspace, CGPointMake(r.x(),  r.y()), 
+                            CGPointMake(r.x(), r.bottom()), mainFunction, false, false );
+
+    CGShadingRef leftShading = CGShadingCreateAxial( cspace, CGPointMake(r.x(),  r.y()), 
+                            CGPointMake(r.x() + radius, r.y()), mainFunction, false, false );                        
+
+    CGShadingRef rightShading = CGShadingCreateAxial( cspace, CGPointMake(r.right(),  r.y()), 
+                            CGPointMake(r.right() - radius, r.y()), mainFunction, false, false );                             
+    i.p->save();
+    CGContextClipToRect(context, r);
+    i.p->addRoundedRectClip(r, 
+        o->style()->borderTopLeftRadius(), o->style()->borderTopRightRadius(),
+        o->style()->borderBottomLeftRadius(), o->style()->borderBottomRightRadius());
+    CGContextDrawShading(context, mainShading);  
+    i.p->restore();      
+
+    i.p->save();
+    CGContextClipToRect(context, topGradient);
+    i.p->addRoundedRectClip(topGradient, 
+        o->style()->borderTopLeftRadius(), o->style()->borderTopRightRadius(),
+        IntSize(), IntSize());
+    CGContextDrawShading(context, topShading);  
+    i.p->restore();      
+
+    i.p->save();
+    CGContextClipToRect(context, bottomGradient);
+    i.p->addRoundedRectClip(bottomGradient, 
+        IntSize(), IntSize(),
+        o->style()->borderBottomLeftRadius(), o->style()->borderBottomRightRadius());
+    CGContextDrawShading(context, bottomShading); 
+    i.p->restore();
+    
+    i.p->save();
+    CGContextClipToRect(context, r);
+    i.p->addRoundedRectClip(r, 
+        o->style()->borderTopLeftRadius(), o->style()->borderTopRightRadius(),
+        o->style()->borderBottomLeftRadius(), o->style()->borderBottomRightRadius());
+    CGContextDrawShading(context, leftShading);
+    CGContextDrawShading(context, rightShading);
+    i.p->restore();
+    
+    i.p->restore();
+}
+
+bool RenderThemeMac::paintMenuListButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
+{        
+    i.p->save();
+        
+    IntRect bounds = IntRect(r.x() + o->style()->borderLeftWidth(), 
+                             r.y() + o->style()->borderTopWidth(), 
+                             r.width() - o->style()->borderLeftWidth() - o->style()->borderRightWidth(),
+                             r.height() - o->style()->borderTopWidth() - o->style()->borderBottomWidth());
+    // Draw the gradients to give the styled popup menu a button appearance
+    paintMenuListButtonGradients(o, i, bounds);
+                
+    float fontScale = o->style()->fontSize() / baseFontSize;
+    float centerY = bounds.y() + bounds.height() / 2.0;
+    float arrowHeight = baseArrowHeight * fontScale;
+    float arrowWidth = baseArrowWidth * fontScale;    
+    float leftEdge = bounds.right() - arrowPaddingRight - arrowWidth;
+    float spaceBetweenArrows = baseSpaceBetweenArrows * fontScale;
+    
+    i.p->setFillColor(o->style()->color());
+    i.p->setPen(Pen(o->style()->color()));
+    
+    FloatPoint arrow1[3];
+    arrow1[0] = FloatPoint(leftEdge, centerY - spaceBetweenArrows / 2.0);
+    arrow1[1] = FloatPoint(leftEdge + arrowWidth, centerY - spaceBetweenArrows / 2.0);
+    arrow1[2] = FloatPoint(leftEdge + arrowWidth / 2.0, centerY - spaceBetweenArrows / 2.0 - arrowHeight);
+
+    // Draw the top arrow
+    i.p->drawConvexPolygon(3, arrow1, true);
+
+    FloatPoint arrow2[3];
+    arrow2[0] = FloatPoint(leftEdge, centerY + spaceBetweenArrows / 2.0);
+    arrow2[1] = FloatPoint(leftEdge + arrowWidth, centerY + spaceBetweenArrows / 2.0);
+    arrow2[2] = FloatPoint(leftEdge + arrowWidth / 2.0, centerY + spaceBetweenArrows / 2.0 + arrowHeight);   
+    
+    // Draw the bottom arrow
+    i.p->drawConvexPolygon(3, arrow2, true); 
+    
+    Color leftSeparatorColor(0, 0, 0, 40);
+    Color rightSeparatorColor(255, 255, 255, 40);
+    int separatorSpace = 2;
+    int leftEdgeOfSeparator = leftEdge - arrowPaddingLeft;
+    
+    // Draw the separator to the left of the arrows
+    i.p->setPen(Pen(leftSeparatorColor));
+    i.p->drawLine(IntPoint(leftEdgeOfSeparator, bounds.y()), IntPoint(leftEdgeOfSeparator, bounds.bottom()));
+
+    i.p->setPen(Pen(rightSeparatorColor));
+    i.p->drawLine(IntPoint(leftEdgeOfSeparator + separatorSpace, bounds.y()), IntPoint(leftEdgeOfSeparator + separatorSpace, bounds.bottom()));
+
+    i.p->restore();
+    return false;
+}
+
 void RenderThemeMac::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
 {
     NSControlSize controlSize = controlSizeForFont(style);
@@ -739,6 +897,30 @@ void RenderThemeMac::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle
     setFontFromControlSize(selector, style, controlSize);
 }
 
+void RenderThemeMac::adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
+{
+    // Add in intrinsic margins if the font size isn't too small
+    if (style->fontSize() >= 11)
+        addIntrinsicMargins(style, NSRegularControlSize);
+        
+    float fontScale = style->fontSize() / baseFontSize;
+    float arrowWidth = baseArrowWidth * fontScale;
+    
+    // We're overriding the padding to allow for the arrow control.  WinIE doesn't honor padding on selects, so
+    // this shouldn't cause problems on the web.  If IE7 changes that, we should reconsider this.
+    style->setPaddingLeft(Length(styledPopupPaddingLeft, Fixed));
+    style->setPaddingRight(Length(arrowWidth + arrowPaddingLeft + arrowPaddingRight + paddingBeforeSeparator, Fixed));
+    style->setPaddingTop(Length(styledPopupPaddingTop, Fixed));
+    style->setPaddingBottom(Length(styledPopupPaddingBottom, Fixed));
+    
+    if (style->hasBorderRadius()) {
+        style->setBorderRadius(IntSize(baseBorderRadius + fontScale - 1, baseBorderRadius + fontScale - 1));
+    }
+    
+    const int minHeight = 15;
+    style->setMinHeight(Length(minHeight, Fixed));
+}
+
 void RenderThemeMac::setPopupButtonCellState(const RenderObject* o, const IntRect& r)
 {
     if (!popupButton) {
index e61831be266429d76a7f4cbf4a34e65d59f92a40..0bbac5554141021a66406d21fdb4f74715ca906c 100644 (file)
@@ -1750,7 +1750,7 @@ IntRect RenderBlock::layoutInlineChildren(bool relayoutChildren)
     }
 
     if (!firstLineBox() && hasLineIfEmpty())
-        m_height += lineHeight(true);
+        m_height += lineHeight(true, true);
 
     // See if we have any lines that spill out of our block.  If we do, then we will possibly need to
     // truncate text.