Changeset 76388 in webkit


Ignore:
Timestamp:
Jan 21, 2011 1:33:07 PM (13 years ago)
Author:
Martin Robinson
Message:

2011-01-21 Martin Robinson <mrobinson@igalia.com>

Reviewed by Xan Lopez.

[GTK] Menulist text often collides with separator
https://bugs.webkit.org/show_bug.cgi?id=51155

Rebaseline tests that have different affected by the metrics of
the menulist.

  • platform/gtk/fast/forms/001-expected.checksum:
  • platform/gtk/fast/forms/001-expected.png:
  • platform/gtk/fast/forms/001-expected.txt:
  • platform/gtk/fast/forms/003-expected.checksum:
  • platform/gtk/fast/forms/003-expected.png:
  • platform/gtk/fast/forms/003-expected.txt:
  • platform/gtk/fast/forms/004-expected.checksum:
  • platform/gtk/fast/forms/004-expected.png:
  • platform/gtk/fast/forms/004-expected.txt:
  • platform/gtk/fast/forms/HTMLOptionElement_label01-expected.checksum:
  • platform/gtk/fast/forms/HTMLOptionElement_label01-expected.png:
  • platform/gtk/fast/forms/HTMLOptionElement_label01-expected.txt:
  • platform/gtk/fast/forms/HTMLOptionElement_label02-expected.checksum:
  • platform/gtk/fast/forms/HTMLOptionElement_label02-expected.png:
  • platform/gtk/fast/forms/HTMLOptionElement_label02-expected.txt:
  • platform/gtk/fast/forms/HTMLOptionElement_label03-expected.checksum:
  • platform/gtk/fast/forms/HTMLOptionElement_label03-expected.png:
  • platform/gtk/fast/forms/HTMLOptionElement_label03-expected.txt:
  • platform/gtk/fast/forms/HTMLOptionElement_label04-expected.checksum:
  • platform/gtk/fast/forms/HTMLOptionElement_label04-expected.png:
  • platform/gtk/fast/forms/HTMLOptionElement_label04-expected.txt:
  • platform/gtk/fast/forms/HTMLOptionElement_label06-expected.checksum:
  • platform/gtk/fast/forms/HTMLOptionElement_label06-expected.png:
  • platform/gtk/fast/forms/HTMLOptionElement_label06-expected.txt:
  • platform/gtk/fast/forms/HTMLOptionElement_label07-expected.checksum:
  • platform/gtk/fast/forms/HTMLOptionElement_label07-expected.png:
  • platform/gtk/fast/forms/HTMLOptionElement_label07-expected.txt:
  • platform/gtk/fast/forms/control-clip-overflow-expected.checksum:
  • platform/gtk/fast/forms/control-clip-overflow-expected.png:
  • platform/gtk/fast/forms/control-clip-overflow-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.checksum:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.checksum:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.png:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.checksum:
  • platform/gtk/fast/forms/form-element-geometry-expected.png:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/input-file-re-render-expected.checksum: Added.
  • platform/gtk/fast/forms/input-file-re-render-expected.png: Added.
  • platform/gtk/fast/forms/menulist-deselect-update-expected.checksum:
  • platform/gtk/fast/forms/menulist-deselect-update-expected.png:
  • platform/gtk/fast/forms/menulist-deselect-update-expected.txt:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.checksum:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.png:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.txt:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.checksum:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.png:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.txt:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.checksum:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.checksum:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.png:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.txt:
  • platform/gtk/fast/forms/menulist-style-color-expected.checksum:
  • platform/gtk/fast/forms/menulist-style-color-expected.png:
  • platform/gtk/fast/forms/menulist-style-color-expected.txt:
  • platform/gtk/fast/forms/menulist-width-change-expected.checksum:
  • platform/gtk/fast/forms/menulist-width-change-expected.png:
  • platform/gtk/fast/forms/menulist-width-change-expected.txt:
  • platform/gtk/fast/forms/option-script-expected.checksum:
  • platform/gtk/fast/forms/option-script-expected.png:
  • platform/gtk/fast/forms/option-script-expected.txt:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.checksum:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.png:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.txt:
  • platform/gtk/fast/forms/option-text-clip-expected.checksum:
  • platform/gtk/fast/forms/option-text-clip-expected.png:
  • platform/gtk/fast/forms/option-text-clip-expected.txt:
  • platform/gtk/fast/forms/select-align-expected.checksum:
  • platform/gtk/fast/forms/select-align-expected.png:
  • platform/gtk/fast/forms/select-align-expected.txt:
  • platform/gtk/fast/forms/select-baseline-expected.checksum:
  • platform/gtk/fast/forms/select-baseline-expected.png:
  • platform/gtk/fast/forms/select-baseline-expected.txt:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.checksum:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.png:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.checksum:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.png:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.txt:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.checksum:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.png:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
  • platform/gtk/fast/forms/select-initial-position-expected.checksum:
  • platform/gtk/fast/forms/select-initial-position-expected.png:
  • platform/gtk/fast/forms/select-initial-position-expected.txt:
  • platform/gtk/fast/forms/select-selected-expected.checksum:
  • platform/gtk/fast/forms/select-selected-expected.png:
  • platform/gtk/fast/forms/select-selected-expected.txt:
  • platform/gtk/fast/forms/select-size-expected.checksum:
  • platform/gtk/fast/forms/select-size-expected.png:
  • platform/gtk/fast/forms/select-size-expected.txt:
  • platform/gtk/fast/forms/select-style-expected.checksum:
  • platform/gtk/fast/forms/select-style-expected.png:
  • platform/gtk/fast/forms/select-style-expected.txt:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.checksum:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.png:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.checksum:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.png:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.checksum:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.png:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.txt:

2011-01-21 Martin Robinson <mrobinson@igalia.com>

Reviewed by Xan Lopez.

[GTK] Menulist text often collides with separator
https://bugs.webkit.org/show_bug.cgi?id=51155

Move menulist rendering to RenderThemeGtk and correct padding code
for separators in menulists.

  • platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize new widget members. (WebCore::RenderThemeGtk::getComboBoxSeparatorWidth): Added. (WebCore::RenderThemeGtk::comboBoxArrowSize): Added. (WebCore::getButtonInnerBorder): Added. (WebCore::RenderThemeGtk::getComboBoxPadding): Do this manually instead of using Mozilla code. (WebCore::RenderThemeGtk::paintMenuList): Ditto. (WebCore::setupWidget): Abstracted this part of the setupWidgetAndAddToContainer out to handle child widgets of comboboxes. (WebCore::RenderThemeGtk::setupWidgetAndAddToContainer): Abstracted out setupWidget. (WebCore::RenderThemeGtk::gtkContainer): Added. (WebCore::getGtkComboBoxButton): Added. (WebCore::getGtkComboBoxPieces): Added. (WebCore::RenderThemeGtk::gtkComboBox): Call setupWidget here. (WebCore::RenderThemeGtk::refreshComboBoxChildren): Added. (WebCore::RenderThemeGtk::gtkComboBoxButton): Added. (WebCore::RenderThemeGtk::gtkComboBoxArrow): Added. (WebCore::RenderThemeGtk::gtkComboBoxSeparator): Added.
  • platform/gtk/RenderThemeGtk.h: Added new members and methods.
  • platform/gtk/WidgetRenderingContext.h: Added new members and methods.
  • platform/gtk/WidgetRenderingContextGtk2.cpp: (WebCore::WidgetRenderingContext::gtkPaintArrow): (WebCore::WidgetRenderingContext::gtkPaintVLine):
  • platform/gtk/WidgetRenderingContextGtk3.cpp: (WebCore::WidgetRenderingContext::gtkPaintArrow): (WebCore::WidgetRenderingContext::gtkPaintVLine):
  • platform/gtk/gtk2drawing.c: Removed code for drawing menulists and buttons. (moz_gtk_init): (moz_gtk_get_widget_border): (moz_gtk_widget_paint):
  • platform/gtk/gtk3drawing.c: (moz_gtk_init): (moz_gtk_get_widget_border): (moz_gtk_widget_paint):
  • platform/gtk/gtkdrawing.h:
Location:
trunk
Files:
2 added
114 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r76386 r76388  
     12011-01-21  Martin Robinson  <mrobinson@igalia.com>
     2
     3        Reviewed by Xan Lopez.
     4
     5        [GTK] Menulist text often collides with separator
     6        https://bugs.webkit.org/show_bug.cgi?id=51155
     7
     8        Rebaseline tests that have different affected by the metrics of
     9        the menulist.
     10
     11        * platform/gtk/fast/forms/001-expected.checksum:
     12        * platform/gtk/fast/forms/001-expected.png:
     13        * platform/gtk/fast/forms/001-expected.txt:
     14        * platform/gtk/fast/forms/003-expected.checksum:
     15        * platform/gtk/fast/forms/003-expected.png:
     16        * platform/gtk/fast/forms/003-expected.txt:
     17        * platform/gtk/fast/forms/004-expected.checksum:
     18        * platform/gtk/fast/forms/004-expected.png:
     19        * platform/gtk/fast/forms/004-expected.txt:
     20        * platform/gtk/fast/forms/HTMLOptionElement_label01-expected.checksum:
     21        * platform/gtk/fast/forms/HTMLOptionElement_label01-expected.png:
     22        * platform/gtk/fast/forms/HTMLOptionElement_label01-expected.txt:
     23        * platform/gtk/fast/forms/HTMLOptionElement_label02-expected.checksum:
     24        * platform/gtk/fast/forms/HTMLOptionElement_label02-expected.png:
     25        * platform/gtk/fast/forms/HTMLOptionElement_label02-expected.txt:
     26        * platform/gtk/fast/forms/HTMLOptionElement_label03-expected.checksum:
     27        * platform/gtk/fast/forms/HTMLOptionElement_label03-expected.png:
     28        * platform/gtk/fast/forms/HTMLOptionElement_label03-expected.txt:
     29        * platform/gtk/fast/forms/HTMLOptionElement_label04-expected.checksum:
     30        * platform/gtk/fast/forms/HTMLOptionElement_label04-expected.png:
     31        * platform/gtk/fast/forms/HTMLOptionElement_label04-expected.txt:
     32        * platform/gtk/fast/forms/HTMLOptionElement_label06-expected.checksum:
     33        * platform/gtk/fast/forms/HTMLOptionElement_label06-expected.png:
     34        * platform/gtk/fast/forms/HTMLOptionElement_label06-expected.txt:
     35        * platform/gtk/fast/forms/HTMLOptionElement_label07-expected.checksum:
     36        * platform/gtk/fast/forms/HTMLOptionElement_label07-expected.png:
     37        * platform/gtk/fast/forms/HTMLOptionElement_label07-expected.txt:
     38        * platform/gtk/fast/forms/control-clip-overflow-expected.checksum:
     39        * platform/gtk/fast/forms/control-clip-overflow-expected.png:
     40        * platform/gtk/fast/forms/control-clip-overflow-expected.txt:
     41        * platform/gtk/fast/forms/control-restrict-line-height-expected.checksum:
     42        * platform/gtk/fast/forms/control-restrict-line-height-expected.png:
     43        * platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
     44        * platform/gtk/fast/forms/disabled-select-change-index-expected.checksum:
     45        * platform/gtk/fast/forms/disabled-select-change-index-expected.png:
     46        * platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
     47        * platform/gtk/fast/forms/form-element-geometry-expected.checksum:
     48        * platform/gtk/fast/forms/form-element-geometry-expected.png:
     49        * platform/gtk/fast/forms/form-element-geometry-expected.txt:
     50        * platform/gtk/fast/forms/input-file-re-render-expected.checksum: Added.
     51        * platform/gtk/fast/forms/input-file-re-render-expected.png: Added.
     52        * platform/gtk/fast/forms/menulist-deselect-update-expected.checksum:
     53        * platform/gtk/fast/forms/menulist-deselect-update-expected.png:
     54        * platform/gtk/fast/forms/menulist-deselect-update-expected.txt:
     55        * platform/gtk/fast/forms/menulist-narrow-width-expected.checksum:
     56        * platform/gtk/fast/forms/menulist-narrow-width-expected.png:
     57        * platform/gtk/fast/forms/menulist-narrow-width-expected.txt:
     58        * platform/gtk/fast/forms/menulist-no-overflow-expected.checksum:
     59        * platform/gtk/fast/forms/menulist-no-overflow-expected.png:
     60        * platform/gtk/fast/forms/menulist-no-overflow-expected.txt:
     61        * platform/gtk/fast/forms/menulist-restrict-line-height-expected.checksum:
     62        * platform/gtk/fast/forms/menulist-restrict-line-height-expected.png:
     63        * platform/gtk/fast/forms/menulist-restrict-line-height-expected.txt:
     64        * platform/gtk/fast/forms/menulist-separator-painting-expected.checksum:
     65        * platform/gtk/fast/forms/menulist-separator-painting-expected.png:
     66        * platform/gtk/fast/forms/menulist-separator-painting-expected.txt:
     67        * platform/gtk/fast/forms/menulist-style-color-expected.checksum:
     68        * platform/gtk/fast/forms/menulist-style-color-expected.png:
     69        * platform/gtk/fast/forms/menulist-style-color-expected.txt:
     70        * platform/gtk/fast/forms/menulist-width-change-expected.checksum:
     71        * platform/gtk/fast/forms/menulist-width-change-expected.png:
     72        * platform/gtk/fast/forms/menulist-width-change-expected.txt:
     73        * platform/gtk/fast/forms/option-script-expected.checksum:
     74        * platform/gtk/fast/forms/option-script-expected.png:
     75        * platform/gtk/fast/forms/option-script-expected.txt:
     76        * platform/gtk/fast/forms/option-strip-whitespace-expected.checksum:
     77        * platform/gtk/fast/forms/option-strip-whitespace-expected.png:
     78        * platform/gtk/fast/forms/option-strip-whitespace-expected.txt:
     79        * platform/gtk/fast/forms/option-text-clip-expected.checksum:
     80        * platform/gtk/fast/forms/option-text-clip-expected.png:
     81        * platform/gtk/fast/forms/option-text-clip-expected.txt:
     82        * platform/gtk/fast/forms/select-align-expected.checksum:
     83        * platform/gtk/fast/forms/select-align-expected.png:
     84        * platform/gtk/fast/forms/select-align-expected.txt:
     85        * platform/gtk/fast/forms/select-baseline-expected.checksum:
     86        * platform/gtk/fast/forms/select-baseline-expected.png:
     87        * platform/gtk/fast/forms/select-baseline-expected.txt:
     88        * platform/gtk/fast/forms/select-change-listbox-to-popup-expected.checksum:
     89        * platform/gtk/fast/forms/select-change-listbox-to-popup-expected.png:
     90        * platform/gtk/fast/forms/select-change-listbox-to-popup-expected.txt:
     91        * platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.checksum:
     92        * platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.png:
     93        * platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.txt:
     94        * platform/gtk/fast/forms/select-disabled-appearance-expected.checksum:
     95        * platform/gtk/fast/forms/select-disabled-appearance-expected.png:
     96        * platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
     97        * platform/gtk/fast/forms/select-initial-position-expected.checksum:
     98        * platform/gtk/fast/forms/select-initial-position-expected.png:
     99        * platform/gtk/fast/forms/select-initial-position-expected.txt:
     100        * platform/gtk/fast/forms/select-selected-expected.checksum:
     101        * platform/gtk/fast/forms/select-selected-expected.png:
     102        * platform/gtk/fast/forms/select-selected-expected.txt:
     103        * platform/gtk/fast/forms/select-size-expected.checksum:
     104        * platform/gtk/fast/forms/select-size-expected.png:
     105        * platform/gtk/fast/forms/select-size-expected.txt:
     106        * platform/gtk/fast/forms/select-style-expected.checksum:
     107        * platform/gtk/fast/forms/select-style-expected.png:
     108        * platform/gtk/fast/forms/select-style-expected.txt:
     109        * platform/gtk/fast/forms/select-visual-hebrew-expected.checksum:
     110        * platform/gtk/fast/forms/select-visual-hebrew-expected.png:
     111        * platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
     112        * platform/gtk/fast/forms/select-writing-direction-natural-expected.checksum:
     113        * platform/gtk/fast/forms/select-writing-direction-natural-expected.png:
     114        * platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
     115        * platform/gtk/fast/forms/stuff-on-my-optgroup-expected.checksum:
     116        * platform/gtk/fast/forms/stuff-on-my-optgroup-expected.png:
     117        * platform/gtk/fast/forms/stuff-on-my-optgroup-expected.txt:
     118
    11192011-01-21  Csaba Osztrogonác  <ossy@webkit.org>
    2120
  • trunk/LayoutTests/platform/gtk/fast/forms/001-expected.checksum

    r70551 r76388  
    1 260139f2ec328b118fddf88f6b4c1df6
     1d17a7e8c99371057cceec8a172454940
  • trunk/LayoutTests/platform/gtk/fast/forms/001-expected.txt

    r76175 r76388  
    1010        RenderTableSection {TBODY} at (2,2) size 780x82
    1111          RenderTableRow {TR} at (0,0) size 780x82
    12             RenderTableCell {TD} at (0,0) size 135x82 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    13               RenderMenuList {SELECT} at (3,1) size 129x80 [bgcolor=#FFFFFF] [border: (40px solid #FF0000)]
    14                 RenderBlock (anonymous) at (40,40) size 49x23
    15                   RenderText at (2,2) size 28x19
    16                     text run at (2,2) width 28: "Foo"
    17             RenderTableCell {TD} at (135,40) size 645x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
     12            RenderTableCell {TD} at (0,0) size 144x82 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     13              RenderMenuList {SELECT} at (3,1) size 138x80 [bgcolor=#FFFFFF] [border: (40px solid #FF0000)]
     14                RenderBlock (anonymous) at (40,40) size 58x25
     15                  RenderText at (3,3) size 28x19
     16                    text run at (3,3) width 28: "Foo"
     17            RenderTableCell {TD} at (144,40) size 636x2 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
    1818      RenderBlock {P} at (0,160) size 784x24
    1919        RenderTable {TABLE} at (0,0) size 784x24 [border: (2px outset #808080)]
  • trunk/LayoutTests/platform/gtk/fast/forms/003-expected.checksum

    r70551 r76388  
    1 582cbfa798691dffcf714093d60fd0c2
     14ca084000f9330cfe464a8f2f92ea434
  • trunk/LayoutTests/platform/gtk/fast/forms/003-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderMenuList {SELECT} at (2,0) size 61x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    7         RenderBlock (anonymous) at (1,1) size 59x23
    8           RenderText at (2,2) size 38x19
    9             text run at (2,2) width 38: "Hello"
    10       RenderBlock (anonymous) at (0,27) size 784x19
     6      RenderMenuList {SELECT} at (2,0) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     7        RenderBlock (anonymous) at (1,1) size 68x25
     8          RenderText at (3,3) size 38x19
     9            text run at (3,3) width 38: "Hello"
     10      RenderBlock (anonymous) at (0,29) size 784x19
    1111        RenderText {#text} at (0,0) size 292x19
    1212          text run at (0,0) width 292: "This text should be *below* the select widget."
  • trunk/LayoutTests/platform/gtk/fast/forms/004-expected.checksum

    r70551 r76388  
    1 c1b878c37844b5f3088e56e53fe94dfa
     11d67fe6b13e8a0d8d6ec28cfec31e014
  • trunk/LayoutTests/platform/gtk/fast/forms/004-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderMenuList {SELECT} at (2,2) size 61x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    7         RenderBlock (anonymous) at (1,1) size 59x23
    8           RenderText at (2,2) size 38x19
    9             text run at (2,2) width 38: "Hello"
    10       RenderText {#text} at (65,5) size 4x19
    11         text run at (65,5) width 4: " "
    12       RenderMenuList {SELECT} at (71,2) size 88x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    13         RenderBlock (anonymous) at (1,1) size 86x23
    14           RenderText at (2,2) size 65x19
    15             text run at (2,2) width 65: "Goodbye"
     6      RenderMenuList {SELECT} at (2,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     7        RenderBlock (anonymous) at (1,1) size 68x25
     8          RenderText at (3,3) size 38x19
     9            text run at (3,3) width 38: "Hello"
     10      RenderText {#text} at (74,6) size 4x19
     11        text run at (74,6) width 4: " "
     12      RenderMenuList {SELECT} at (80,2) size 97x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     13        RenderBlock (anonymous) at (1,1) size 95x25
     14          RenderText at (3,3) size 65x19
     15            text run at (3,3) width 65: "Goodbye"
    1616      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label01-expected.checksum

    r70551 r76388  
    1 38785a0d35f3b3f3796b9598802c4c66
     17e9087b753a7f485e4b3b6570d852720
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label01-expected.txt

    r71410 r76388  
    77        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'"
    88      RenderBR {BR} at (673,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 237x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 235x23
    11           RenderText at (2,2) size 214x19
    12             text run at (2,2) width 214: "the label for this element is \"1\""
     9      RenderMenuList {SELECT} at (2,21) size 246x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 244x25
     11          RenderText at (3,3) size 214x19
     12            text run at (3,3) width 214: "the label for this element is \"1\""
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label02-expected.checksum

    r70551 r76388  
    1 097c8a6ccbf22c5e91e968b6e55d4bf7
     11b1aaa0d807519b0fc16a8a7dedfe1b8
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label02-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 300: "With the label empty, the enclosing text is used."
    88      RenderBR {BR} at (300,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 385x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 383x23
    11           RenderText at (2,2) size 362x19
    12             text run at (2,2) width 362: "empty label should display empty string to match IE"
     9      RenderMenuList {SELECT} at (2,21) size 394x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 392x25
     11          RenderText at (3,3) size 362x19
     12            text run at (3,3) width 362: "empty label should display empty string to match IE"
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label03-expected.checksum

    r70551 r76388  
    1 846a8837ced392a8253a403bdb76b0af
     1308bb5c1afcd53ba52a9a012160abb7c
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label03-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 436: "When the label contains only white space, the containing text is used."
    88      RenderBR {BR} at (436,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 427x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 425x23
    11           RenderText at (2,2) size 404x19
    12             text run at (2,2) width 404: "white space label should display empty string to match IE"
     9      RenderMenuList {SELECT} at (2,21) size 436x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 434x25
     11          RenderText at (3,3) size 404x19
     12            text run at (3,3) width 404: "white space label should display empty string to match IE"
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label04-expected.checksum

    r70551 r76388  
    1 c3d226928d3a3344fb7694b788b5a22c
     1bb71b77f4aae4dcd8f43e24271f7f020
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label04-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 595: "The label attribute appears, but is missing the equals value piece, so the containing text is used."
    88      RenderBR {BR} at (595,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 583x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 581x23
    11           RenderText at (2,2) size 560x19
    12             text run at (2,2) width 560: "the label attribute is mentioned but no value is specified; this text should appear"
     9      RenderMenuList {SELECT} at (2,21) size 592x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 590x25
     11          RenderText at (3,3) size 560x19
     12            text run at (3,3) width 560: "the label attribute is mentioned but no value is specified; this text should appear"
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label06-expected.checksum

    r70551 r76388  
    1 cc021af3c805df12689b9d080de3d1bc
     1b620040b2eb12fe118e46a80bd1a8e03
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label06-expected.txt

    r71410 r76388  
    77        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."
    88      RenderBR {BR} at (718,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 21x23
    11           RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
     9      RenderMenuList {SELECT} at (2,21) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 30x25
     11          RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
    1212      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label07-expected.checksum

    r70551 r76388  
    1 272fc9fee934f1c5a1387de2d8a108ee
     1d575f18f7214f56a42d0d5e7f73a9836
  • trunk/LayoutTests/platform/gtk/fast/forms/HTMLOptionElement_label07-expected.txt

    r71410 r76388  
    88        text run at (0,19) width 28: "box."
    99      RenderBR {BR} at (28,34) size 0x0
    10       RenderMenuList {SELECT} at (2,40) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    11         RenderBlock (anonymous) at (1,1) size 21x23
    12           RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
     10      RenderMenuList {SELECT} at (2,40) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     11        RenderBlock (anonymous) at (1,1) size 30x25
     12          RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/control-clip-overflow-expected.checksum

    r70551 r76388  
    1 d5d83890bc6cb3937249d9660562d436
     1042fa04b0ac1783f3467296ab313f62e
  • trunk/LayoutTests/platform/gtk/fast/forms/control-clip-overflow-expected.txt

    r71405 r76388  
    2222layer at (8,97) size 100x50
    2323  RenderBlock {DIV} at (0,89) size 100x50
    24     RenderMenuList {SELECT} at (0,2) size 80x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    25       RenderBlock (anonymous) at (1,1) size 78x23
    26         RenderText at (2,2) size 191x19
    27           text run at (2,2) width 191: "Lorem ipsum dolor sit amet"
     24    RenderMenuList {SELECT} at (0,2) size 80x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     25      RenderBlock (anonymous) at (1,1) size 78x25
     26        RenderText at (3,3) size 191x19
     27          text run at (3,3) width 191: "Lorem ipsum dolor sit amet"
    2828    RenderText {#text} at (0,0) size 0x0
    2929layer at (8,167) size 100x50
  • trunk/LayoutTests/platform/gtk/fast/forms/control-restrict-line-height-expected.checksum

    r73128 r76388  
    1 bad598a7979a730f20cc73071da25170
     151b553941fd831b7effd11650dc9954c
  • trunk/LayoutTests/platform/gtk/fast/forms/control-restrict-line-height-expected.txt

    r73598 r76388  
    77        text run at (0,0) width 519: "This tests that we don't honor line-height for controls that have restricted font size. "
    88      RenderBR {BR} at (0,0) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 381x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 379x23
    11           RenderText at (2,2) size 358x19
    12             text run at (2,2) width 358: "This text should be centered vertically in the button"
    13       RenderText {#text} at (385,24) size 4x19
    14         text run at (385,24) width 4: " "
     9      RenderMenuList {SELECT} at (2,21) size 390x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 388x25
     11          RenderText at (3,3) size 358x19
     12            text run at (3,3) width 358: "This text should be centered vertically in the button"
     13      RenderText {#text} at (394,25) size 4x19
     14        text run at (394,25) width 4: " "
    1515      RenderBR {BR} at (0,0) size 0x0
    16       RenderButton {INPUT} at (2,50) size 374x28 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
     16      RenderButton {INPUT} at (2,52) size 374x28 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
    1717        RenderBlock (anonymous) at (8,4) size 358x19
    1818          RenderText at (0,0) size 358x19
    1919            text run at (0,0) width 358: "This text should be centered vertically in the button"
    20       RenderText {#text} at (378,54) size 4x19
    21         text run at (378,54) width 4: " "
     20      RenderText {#text} at (378,56) size 4x19
     21        text run at (378,56) width 4: " "
    2222      RenderBR {BR} at (0,0) size 0x0
    23       RenderTextControl {INPUT} at (2,82) size 194x25 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
     23      RenderTextControl {INPUT} at (2,84) size 194x25 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
    2424        RenderBlock {DIV} at (3,2) size 188x20
    2525          RenderBlock {DIV} at (0,16) size 0x0
    2626          RenderBlock {DIV} at (172,0) size 16x16
    2727      RenderText {#text} at (0,0) size 0x0
    28 layer at (13,93) size 172x19 scrollWidth 360
     28layer at (13,95) size 172x19 scrollWidth 360
    2929  RenderBlock {DIV} at (0,1) size 172x19
    3030    RenderText {#text} at (1,0) size 358x19
  • trunk/LayoutTests/platform/gtk/fast/forms/disabled-select-change-index-expected.checksum

    r70551 r76388  
    1 516a047e6d6e23001cdffb2c576119bf
     1f9be45d6e30f70765359742264890156
  • trunk/LayoutTests/platform/gtk/fast/forms/disabled-select-change-index-expected.txt

    r71410 r76388  
    1 layer at (0,0) size 781x624
     1layer at (0,0) size 781x632
    22  RenderView at (0,0) size 781x600
    3 layer at (0,0) size 781x624
    4   RenderBlock {HTML} at (0,0) size 781x624
    5     RenderBody {BODY} at (8,8) size 765x608
    6       RenderMenuList {SELECT} at (2,2) size 67x25 [color=#808080] [bgcolor=#FFFFFF] [border: (1px solid #808080)]
    7         RenderBlock (anonymous) at (1,1) size 65x23
    8           RenderText at (2,2) size 44x19
    9             text run at (2,2) width 44: "PASS"
    10       RenderBR {BR} at (71,20) size 0x0
    11       RenderMenuList {SELECT} at (2,31) size 67x25 [color=#808080] [bgcolor=#FFFFFF] [border: (1px solid #808080)]
    12         RenderBlock (anonymous) at (1,1) size 65x23
    13           RenderText at (2,2) size 44x19
    14             text run at (2,2) width 44: "PASS"
    15       RenderBR {BR} at (71,49) size 0x0
    16       RenderMenuList {SELECT} at (2,60) size 67x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    17         RenderBlock (anonymous) at (1,1) size 65x23
    18           RenderText at (2,2) size 44x19
    19             text run at (2,2) width 44: "PASS"
    20       RenderBR {BR} at (71,78) size 0x0
    21       RenderMenuList {SELECT} at (2,89) size 67x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    22         RenderBlock (anonymous) at (1,1) size 65x23
    23           RenderText at (2,2) size 44x19
    24             text run at (2,2) width 44: "PASS"
    25       RenderBR {BR} at (71,107) size 0x0
    26       RenderListBox {SELECT} at (2,118) size 66x81 [color=#808080] [bgcolor=#FFFFFF] [border: (1px inset #808080)]
    27       RenderBR {BR} at (70,194) size 0x0
    28       RenderListBox {SELECT} at (2,203) size 66x81 [color=#808080] [bgcolor=#FFFFFF] [border: (1px inset #808080)]
    29       RenderBR {BR} at (70,279) size 0x0
    30       RenderListBox {SELECT} at (2,288) size 66x81 [bgcolor=#FFFFFF] [border: (1px inset #808080)]
    31       RenderBR {BR} at (70,364) size 0x0
    32       RenderListBox {SELECT} at (2,373) size 66x81 [bgcolor=#FFFFFF] [border: (1px inset #808080)]
    33       RenderBR {BR} at (70,449) size 0x0
    34       RenderText {#text} at (0,456) size 486x19
    35         text run at (0,456) width 486: "PASS: sel1 correctly set to selectedIndex 1 by sel1.options[1].selected = true."
    36       RenderBR {BR} at (486,471) size 0x0
    37       RenderText {#text} at (0,475) size 438x19
    38         text run at (0,475) width 438: "PASS: sel2 correctly set to selectedIndex 1 by sel2.selectedIndex = 1."
    39       RenderBR {BR} at (438,490) size 0x0
    40       RenderText {#text} at (0,494) size 486x19
    41         text run at (0,494) width 486: "PASS: sel3 correctly set to selectedIndex 1 by sel3.options[1].selected = true."
    42       RenderBR {BR} at (486,509) size 0x0
    43       RenderText {#text} at (0,513) size 438x19
    44         text run at (0,513) width 438: "PASS: sel4 correctly set to selectedIndex 1 by sel4.selectedIndex = 1."
    45       RenderBR {BR} at (438,528) size 0x0
    46       RenderText {#text} at (0,532) size 486x19
    47         text run at (0,532) width 486: "PASS: sel5 correctly set to selectedIndex 1 by sel5.options[1].selected = true."
    48       RenderBR {BR} at (486,547) size 0x0
    49       RenderText {#text} at (0,551) size 438x19
    50         text run at (0,551) width 438: "PASS: sel6 correctly set to selectedIndex 1 by sel6.selectedIndex = 1."
    51       RenderBR {BR} at (438,566) size 0x0
    52       RenderText {#text} at (0,570) size 486x19
    53         text run at (0,570) width 486: "PASS: sel7 correctly set to selectedIndex 1 by sel7.options[1].selected = true."
    54       RenderBR {BR} at (486,585) size 0x0
    55       RenderText {#text} at (0,589) size 438x19
    56         text run at (0,589) width 438: "PASS: sel8 correctly set to selectedIndex 1 by sel8.selectedIndex = 1."
    57       RenderBR {BR} at (438,604) size 0x0
     3layer at (0,0) size 781x632
     4  RenderBlock {HTML} at (0,0) size 781x632
     5    RenderBody {BODY} at (8,8) size 765x616
     6      RenderMenuList {SELECT} at (2,2) size 76x27 [color=#808080] [bgcolor=#FFFFFF] [border: (1px solid #808080)]
     7        RenderBlock (anonymous) at (1,1) size 74x25
     8          RenderText at (3,3) size 44x19
     9            text run at (3,3) width 44: "PASS"
     10      RenderBR {BR} at (80,21) size 0x0
     11      RenderMenuList {SELECT} at (2,33) size 76x27 [color=#808080] [bgcolor=#FFFFFF] [border: (1px solid #808080)]
     12        RenderBlock (anonymous) at (1,1) size 74x25
     13          RenderText at (3,3) size 44x19
     14            text run at (3,3) width 44: "PASS"
     15      RenderBR {BR} at (80,52) size 0x0
     16      RenderMenuList {SELECT} at (2,64) size 76x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     17        RenderBlock (anonymous) at (1,1) size 74x25
     18          RenderText at (3,3) size 44x19
     19            text run at (3,3) width 44: "PASS"
     20      RenderBR {BR} at (80,83) size 0x0
     21      RenderMenuList {SELECT} at (2,95) size 76x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     22        RenderBlock (anonymous) at (1,1) size 74x25
     23          RenderText at (3,3) size 44x19
     24            text run at (3,3) width 44: "PASS"
     25      RenderBR {BR} at (80,114) size 0x0
     26      RenderListBox {SELECT} at (2,126) size 66x81 [color=#808080] [bgcolor=#FFFFFF] [border: (1px inset #808080)]
     27      RenderBR {BR} at (70,202) size 0x0
     28      RenderListBox {SELECT} at (2,211) size 66x81 [color=#808080] [bgcolor=#FFFFFF] [border: (1px inset #808080)]
     29      RenderBR {BR} at (70,287) size 0x0
     30      RenderListBox {SELECT} at (2,296) size 66x81 [bgcolor=#FFFFFF] [border: (1px inset #808080)]
     31      RenderBR {BR} at (70,372) size 0x0
     32      RenderListBox {SELECT} at (2,381) size 66x81 [bgcolor=#FFFFFF] [border: (1px inset #808080)]
     33      RenderBR {BR} at (70,457) size 0x0
     34      RenderText {#text} at (0,464) size 486x19
     35        text run at (0,464) width 486: "PASS: sel1 correctly set to selectedIndex 1 by sel1.options[1].selected = true."
     36      RenderBR {BR} at (486,479) size 0x0
     37      RenderText {#text} at (0,483) size 438x19
     38        text run at (0,483) width 438: "PASS: sel2 correctly set to selectedIndex 1 by sel2.selectedIndex = 1."
     39      RenderBR {BR} at (438,498) size 0x0
     40      RenderText {#text} at (0,502) size 486x19
     41        text run at (0,502) width 486: "PASS: sel3 correctly set to selectedIndex 1 by sel3.options[1].selected = true."
     42      RenderBR {BR} at (486,517) size 0x0
     43      RenderText {#text} at (0,521) size 438x19
     44        text run at (0,521) width 438: "PASS: sel4 correctly set to selectedIndex 1 by sel4.selectedIndex = 1."
     45      RenderBR {BR} at (438,536) size 0x0
     46      RenderText {#text} at (0,540) size 486x19
     47        text run at (0,540) width 486: "PASS: sel5 correctly set to selectedIndex 1 by sel5.options[1].selected = true."
     48      RenderBR {BR} at (486,555) size 0x0
     49      RenderText {#text} at (0,559) size 438x19
     50        text run at (0,559) width 438: "PASS: sel6 correctly set to selectedIndex 1 by sel6.selectedIndex = 1."
     51      RenderBR {BR} at (438,574) size 0x0
     52      RenderText {#text} at (0,578) size 486x19
     53        text run at (0,578) width 486: "PASS: sel7 correctly set to selectedIndex 1 by sel7.options[1].selected = true."
     54      RenderBR {BR} at (486,593) size 0x0
     55      RenderText {#text} at (0,597) size 438x19
     56        text run at (0,597) width 438: "PASS: sel8 correctly set to selectedIndex 1 by sel8.selectedIndex = 1."
     57      RenderBR {BR} at (438,612) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/form-element-geometry-expected.checksum

    r73128 r76388  
    1 1e921780d86c66da0e9f9a8f159216ed
     12e9df1dccf52b2646d5d06ceccfa5308
  • trunk/LayoutTests/platform/gtk/fast/forms/form-element-geometry-expected.txt

    r76175 r76388  
    1 layer at (0,0) size 781x741
     1layer at (0,0) size 781x746
    22  RenderView at (0,0) size 781x600
    3 layer at (0,0) size 781x741
    4   RenderBlock {HTML} at (0,0) size 781x741
    5     RenderBody {BODY} at (8,8) size 765x725
     3layer at (0,0) size 781x746
     4  RenderBlock {HTML} at (0,0) size 781x746
     5    RenderBody {BODY} at (8,8) size 765x730
    66      RenderBlock {H1} at (0,0) size 765x37
    77        RenderText {#text} at (0,0) size 422x36
     
    1313        RenderText {#text} at (0,0) size 165x28
    1414          text run at (0,0) width 165: "Bounding Boxes"
    15       RenderTable {TABLE} at (0,143) size 183x38
    16         RenderTableSection {TBODY} at (0,0) size 183x38
    17           RenderTableRow {TR} at (0,2) size 183x34
     15      RenderTable {TABLE} at (0,143) size 192x38
     16        RenderTableSection {TBODY} at (0,0) size 192x38
     17          RenderTableRow {TR} at (0,2) size 192x34
    1818            RenderTableCell {TD} at (2,2) size 66x34 [r=0 c=0 rs=1 cs=1]
    1919              RenderBlock {DIV} at (1,1) size 64x32 [border: (2px solid #0000FF)]
     
    2323                      RenderText at (0,0) size 44x19
    2424                        text run at (0,0) width 44: "button"
    25             RenderTableCell {TD} at (70,3) size 69x31 [r=0 c=1 rs=1 cs=1]
    26               RenderBlock {DIV} at (1,1) size 67x29 [border: (2px solid #0000FF)]
    27                 RenderInline {FONT} at (0,0) size 63x28
    28                   RenderMenuList {SELECT} at (2,2) size 63x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    29                     RenderBlock (anonymous) at (1,1) size 61x23
    30                       RenderText at (2,2) size 40x19
    31                         text run at (2,2) width 40: "menu"
    32             RenderTableCell {TD} at (141,9) size 19x19 [r=0 c=2 rs=1 cs=1]
     25            RenderTableCell {TD} at (70,2) size 78x33 [r=0 c=1 rs=1 cs=1]
     26              RenderBlock {DIV} at (1,1) size 76x31 [border: (2px solid #0000FF)]
     27                RenderInline {FONT} at (0,0) size 72x28
     28                  RenderMenuList {SELECT} at (2,2) size 72x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     29                    RenderBlock (anonymous) at (1,1) size 70x25
     30                      RenderText at (3,3) size 40x19
     31                        text run at (3,3) width 40: "menu"
     32            RenderTableCell {TD} at (150,9) size 19x19 [r=0 c=2 rs=1 cs=1]
    3333              RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
    3434                RenderInline {FONT} at (0,0) size 13x28
    3535                  RenderBlock {INPUT} at (2,2) size 13x13
    36             RenderTableCell {TD} at (162,9) size 19x19 [r=0 c=3 rs=1 cs=1]
     36            RenderTableCell {TD} at (171,9) size 19x19 [r=0 c=3 rs=1 cs=1]
    3737              RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
    3838                RenderInline {FONT} at (0,0) size 13x28
    3939                  RenderBlock {INPUT} at (2,2) size 13x13
    40       RenderTable {TABLE} at (0,181) size 183x38
    41         RenderTableSection {TBODY} at (0,0) size 183x38
    42           RenderTableRow {TR} at (0,2) size 183x34
     40      RenderTable {TABLE} at (0,181) size 192x38
     41        RenderTableSection {TBODY} at (0,0) size 192x38
     42          RenderTableRow {TR} at (0,2) size 192x34
    4343            RenderTableCell {TD} at (2,2) size 66x34 [r=0 c=0 rs=1 cs=1]
    4444              RenderBlock {DIV} at (1,1) size 64x32 [border: (2px solid #0000FF)]
     
    4747                    RenderText at (0,0) size 44x19
    4848                      text run at (0,0) width 44: "button"
    49             RenderTableCell {TD} at (70,3) size 69x31 [r=0 c=1 rs=1 cs=1]
    50               RenderBlock {DIV} at (1,1) size 67x29 [border: (2px solid #0000FF)]
    51                 RenderMenuList {SELECT} at (2,2) size 63x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    52                   RenderBlock (anonymous) at (1,1) size 61x23
    53                     RenderText at (2,2) size 40x19
    54                       text run at (2,2) width 40: "menu"
    55             RenderTableCell {TD} at (141,9) size 19x19 [r=0 c=2 rs=1 cs=1]
     49            RenderTableCell {TD} at (70,2) size 78x33 [r=0 c=1 rs=1 cs=1]
     50              RenderBlock {DIV} at (1,1) size 76x31 [border: (2px solid #0000FF)]
     51                RenderMenuList {SELECT} at (2,2) size 72x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     52                  RenderBlock (anonymous) at (1,1) size 70x25
     53                    RenderText at (3,3) size 40x19
     54                      text run at (3,3) width 40: "menu"
     55            RenderTableCell {TD} at (150,9) size 19x19 [r=0 c=2 rs=1 cs=1]
    5656              RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
    5757                RenderBlock {INPUT} at (2,2) size 13x13
    58             RenderTableCell {TD} at (162,9) size 19x19 [r=0 c=3 rs=1 cs=1]
     58            RenderTableCell {TD} at (171,9) size 19x19 [r=0 c=3 rs=1 cs=1]
    5959              RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
    6060                RenderBlock {INPUT} at (2,2) size 13x13
    61       RenderTable {TABLE} at (0,219) size 183x38
    62         RenderTableSection {TBODY} at (0,0) size 183x38
    63           RenderTableRow {TR} at (0,2) size 183x34
     61      RenderTable {TABLE} at (0,219) size 192x38
     62        RenderTableSection {TBODY} at (0,0) size 192x38
     63          RenderTableRow {TR} at (0,2) size 192x34
    6464            RenderTableCell {TD} at (2,2) size 66x34 [r=0 c=0 rs=1 cs=1]
    6565              RenderBlock {DIV} at (1,1) size 64x32 [border: (2px solid #0000FF)]
     
    6969                      RenderText at (0,0) size 44x19
    7070                        text run at (0,0) width 44: "button"
    71             RenderTableCell {TD} at (70,3) size 69x31 [r=0 c=1 rs=1 cs=1]
    72               RenderBlock {DIV} at (1,1) size 67x29 [border: (2px solid #0000FF)]
    73                 RenderInline {FONT} at (0,0) size 63x12
    74                   RenderMenuList {SELECT} at (2,2) size 63x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    75                     RenderBlock (anonymous) at (1,1) size 61x23
    76                       RenderText at (2,2) size 40x19
    77                         text run at (2,2) width 40: "menu"
    78             RenderTableCell {TD} at (141,9) size 19x19 [r=0 c=2 rs=1 cs=1]
     71            RenderTableCell {TD} at (70,2) size 78x33 [r=0 c=1 rs=1 cs=1]
     72              RenderBlock {DIV} at (1,1) size 76x31 [border: (2px solid #0000FF)]
     73                RenderInline {FONT} at (0,0) size 72x12
     74                  RenderMenuList {SELECT} at (2,2) size 72x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     75                    RenderBlock (anonymous) at (1,1) size 70x25
     76                      RenderText at (3,3) size 40x19
     77                        text run at (3,3) width 40: "menu"
     78            RenderTableCell {TD} at (150,9) size 19x19 [r=0 c=2 rs=1 cs=1]
    7979              RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
    8080                RenderInline {FONT} at (0,0) size 13x12
    8181                  RenderBlock {INPUT} at (2,2) size 13x13
    82             RenderTableCell {TD} at (162,9) size 19x19 [r=0 c=3 rs=1 cs=1]
     82            RenderTableCell {TD} at (171,9) size 19x19 [r=0 c=3 rs=1 cs=1]
    8383              RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
    8484                RenderInline {FONT} at (0,0) size 13x12
     
    106106          text run at (0,0) width 200: "Baseline Alignment"
    107107      RenderBlock {DIV} at (0,414) size 765x33
    108         RenderInline {FONT} at (0,0) size 234x28
     108        RenderInline {FONT} at (0,0) size 243x28
    109109          RenderText {#text} at (0,0) size 43x28
    110110            text run at (0,0) width 43: "text "
     
    115115          RenderText {#text} at (107,0) size 6x28
    116116            text run at (107,0) width 6: " "
    117           RenderMenuList {SELECT} at (115,4) size 63x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    118             RenderBlock (anonymous) at (1,1) size 61x23
    119               RenderText at (2,2) size 40x19
    120                 text run at (2,2) width 40: "menu"
    121           RenderText {#text} at (180,0) size 6x28
    122             text run at (180,0) width 6: " "
    123           RenderBlock {INPUT} at (190,11) size 13x13
    124           RenderText {#text} at (207,0) size 6x28
    125             text run at (207,0) width 6: " "
    126           RenderBlock {INPUT} at (217,11) size 13x13
     117          RenderMenuList {SELECT} at (115,3) size 72x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     118            RenderBlock (anonymous) at (1,1) size 70x25
     119              RenderText at (3,3) size 40x19
     120                text run at (3,3) width 40: "menu"
     121          RenderText {#text} at (189,0) size 6x28
     122            text run at (189,0) width 6: " "
     123          RenderBlock {INPUT} at (199,11) size 13x13
     124          RenderText {#text} at (216,0) size 6x28
     125            text run at (216,0) width 6: " "
     126          RenderBlock {INPUT} at (226,11) size 13x13
    127127          RenderText {#text} at (0,0) size 0x0
    128128      RenderBlock {DIV} at (0,447) size 765x32
     
    135135        RenderText {#text} at (91,6) size 4x19
    136136          text run at (91,6) width 4: " "
    137         RenderMenuList {SELECT} at (97,3) size 63x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    138           RenderBlock (anonymous) at (1,1) size 61x23
    139             RenderText at (2,2) size 40x19
    140               text run at (2,2) width 40: "menu"
    141         RenderText {#text} at (162,6) size 4x19
    142           text run at (162,6) width 4: " "
    143         RenderBlock {INPUT} at (170,10) size 13x13
    144         RenderText {#text} at (187,6) size 4x19
    145           text run at (187,6) width 4: " "
    146         RenderBlock {INPUT} at (195,10) size 13x13
     137        RenderMenuList {SELECT} at (97,2) size 72x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     138          RenderBlock (anonymous) at (1,1) size 70x25
     139            RenderText at (3,3) size 40x19
     140              text run at (3,3) width 40: "menu"
     141        RenderText {#text} at (171,6) size 4x19
     142          text run at (171,6) width 4: " "
     143        RenderBlock {INPUT} at (179,10) size 13x13
     144        RenderText {#text} at (196,6) size 4x19
     145          text run at (196,6) width 4: " "
     146        RenderBlock {INPUT} at (204,10) size 13x13
    147147        RenderText {#text} at (0,0) size 0x0
    148148      RenderBlock {DIV} at (0,479) size 765x32
    149         RenderInline {FONT} at (0,0) size 200x12
     149        RenderInline {FONT} at (0,0) size 209x12
    150150          RenderText {#text} at (0,12) size 18x12
    151151            text run at (0,12) width 18: "text "
     
    156156          RenderText {#text} at (82,12) size 3x12
    157157            text run at (82,12) width 3: " "
    158           RenderMenuList {SELECT} at (87,3) size 63x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    159             RenderBlock (anonymous) at (1,1) size 61x23
    160               RenderText at (2,2) size 40x19
    161                 text run at (2,2) width 40: "menu"
    162           RenderText {#text} at (152,12) size 3x12
    163             text run at (152,12) width 3: " "
    164           RenderBlock {INPUT} at (159,10) size 13x13
    165           RenderText {#text} at (176,12) size 3x12
    166             text run at (176,12) width 3: " "
    167           RenderBlock {INPUT} at (183,10) size 13x13
     158          RenderMenuList {SELECT} at (87,2) size 72x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     159            RenderBlock (anonymous) at (1,1) size 70x25
     160              RenderText at (3,3) size 40x19
     161                text run at (3,3) width 40: "menu"
     162          RenderText {#text} at (161,12) size 3x12
     163            text run at (161,12) width 3: " "
     164          RenderBlock {INPUT} at (168,10) size 13x13
     165          RenderText {#text} at (185,12) size 3x12
     166            text run at (185,12) width 3: " "
     167          RenderBlock {INPUT} at (192,10) size 13x13
    168168          RenderText {#text} at (0,0) size 0x0
    169169      RenderBlock {DIV} at (0,511) size 765x59
     
    184184        RenderText {#text} at (0,0) size 197x28
    185185          text run at (0,0) width 197: "Pop-up Menu Sizes"
    186       RenderBlock {DIV} at (0,636) size 765x31
    187         RenderInline {FONT} at (0,0) size 161x28
    188           RenderText {#text} at (0,0) size 0x0
    189           RenderMenuList {SELECT} at (2,4) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    190             RenderBlock (anonymous) at (1,1) size 21x23
    191               RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
    192           RenderText {#text} at (27,0) size 6x28
    193             text run at (27,0) width 6: " "
    194           RenderMenuList {SELECT} at (35,4) size 27x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    195             RenderBlock (anonymous) at (1,1) size 25x23
    196               RenderText at (2,2) size 4x19
    197                 text run at (2,2) width 4: "|"
    198           RenderText {#text} at (64,0) size 6x28
    199             text run at (64,0) width 6: " "
    200           RenderMenuList {SELECT} at (72,4) size 87x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    201             RenderBlock (anonymous) at (1,1) size 85x23
    202               RenderText at (2,2) size 64x19
    203                 text run at (2,2) width 64: "xxxxxxxx"
    204           RenderText {#text} at (0,0) size 0x0
    205       RenderBlock {DIV} at (0,667) size 765x29
    206         RenderMenuList {SELECT} at (2,2) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    207           RenderBlock (anonymous) at (1,1) size 21x23
    208             RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
    209         RenderText {#text} at (27,5) size 4x19
    210           text run at (27,5) width 4: " "
    211         RenderMenuList {SELECT} at (33,2) size 27x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    212           RenderBlock (anonymous) at (1,1) size 25x23
    213             RenderText at (2,2) size 4x19
    214               text run at (2,2) width 4: "|"
    215         RenderText {#text} at (62,5) size 4x19
    216           text run at (62,5) width 4: " "
    217         RenderMenuList {SELECT} at (68,2) size 87x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    218           RenderBlock (anonymous) at (1,1) size 85x23
    219             RenderText at (2,2) size 64x19
    220               text run at (2,2) width 64: "xxxxxxxx"
     186      RenderBlock {DIV} at (0,636) size 765x32
     187        RenderInline {FONT} at (0,0) size 188x28
     188          RenderText {#text} at (0,0) size 0x0
     189          RenderMenuList {SELECT} at (2,3) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     190            RenderBlock (anonymous) at (1,1) size 30x25
     191              RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
     192          RenderText {#text} at (36,0) size 6x28
     193            text run at (36,0) width 6: " "
     194          RenderMenuList {SELECT} at (44,3) size 36x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     195            RenderBlock (anonymous) at (1,1) size 34x25
     196              RenderText at (3,3) size 4x19
     197                text run at (3,3) width 4: "|"
     198          RenderText {#text} at (82,0) size 6x28
     199            text run at (82,0) width 6: " "
     200          RenderMenuList {SELECT} at (90,3) size 96x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     201            RenderBlock (anonymous) at (1,1) size 94x25
     202              RenderText at (3,3) size 64x19
     203                text run at (3,3) width 64: "xxxxxxxx"
     204          RenderText {#text} at (0,0) size 0x0
     205      RenderBlock {DIV} at (0,668) size 765x31
     206        RenderMenuList {SELECT} at (2,2) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     207          RenderBlock (anonymous) at (1,1) size 30x25
     208            RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
     209        RenderText {#text} at (36,6) size 4x19
     210          text run at (36,6) width 4: " "
     211        RenderMenuList {SELECT} at (42,2) size 36x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     212          RenderBlock (anonymous) at (1,1) size 34x25
     213            RenderText at (3,3) size 4x19
     214              text run at (3,3) width 4: "|"
     215        RenderText {#text} at (80,6) size 4x19
     216          text run at (80,6) width 4: " "
     217        RenderMenuList {SELECT} at (86,2) size 96x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     218          RenderBlock (anonymous) at (1,1) size 94x25
     219            RenderText at (3,3) size 64x19
     220              text run at (3,3) width 64: "xxxxxxxx"
    221221        RenderText {#text} at (0,0) size 0x0
    222       RenderBlock {DIV} at (0,696) size 765x29
    223         RenderInline {FONT} at (0,0) size 155x12
    224           RenderText {#text} at (0,0) size 0x0
    225           RenderMenuList {SELECT} at (2,2) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    226             RenderBlock (anonymous) at (1,1) size 21x23
    227               RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
    228           RenderText {#text} at (27,11) size 3x12
    229             text run at (27,11) width 3: " "
    230           RenderMenuList {SELECT} at (32,2) size 27x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    231             RenderBlock (anonymous) at (1,1) size 25x23
    232               RenderText at (2,2) size 4x19
    233                 text run at (2,2) width 4: "|"
    234           RenderText {#text} at (61,11) size 3x12
    235             text run at (61,11) width 3: " "
    236           RenderMenuList {SELECT} at (66,2) size 87x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    237             RenderBlock (anonymous) at (1,1) size 85x23
    238               RenderText at (2,2) size 64x19
    239                 text run at (2,2) width 64: "xxxxxxxx"
     222      RenderBlock {DIV} at (0,699) size 765x31
     223        RenderInline {FONT} at (0,0) size 182x12
     224          RenderText {#text} at (0,0) size 0x0
     225          RenderMenuList {SELECT} at (2,2) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     226            RenderBlock (anonymous) at (1,1) size 30x25
     227              RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
     228          RenderText {#text} at (36,12) size 3x12
     229            text run at (36,12) width 3: " "
     230          RenderMenuList {SELECT} at (41,2) size 36x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     231            RenderBlock (anonymous) at (1,1) size 34x25
     232              RenderText at (3,3) size 4x19
     233                text run at (3,3) width 4: "|"
     234          RenderText {#text} at (79,12) size 3x12
     235            text run at (79,12) width 3: " "
     236          RenderMenuList {SELECT} at (84,2) size 96x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     237            RenderBlock (anonymous) at (1,1) size 94x25
     238              RenderText at (3,3) size 64x19
     239                text run at (3,3) width 64: "xxxxxxxx"
    240240          RenderText {#text} at (0,0) size 0x0
    241241layer at (16,273) size 98x19
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-deselect-update-expected.checksum

    r70391 r76388  
    1 242ed87e221ff1bf8736004d2412e65e
     10de4d6cbb9fa424d0e4162a7c2c83ff0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-deselect-update-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderText {#text} at (0,5) size 73x19
    7         text run at (0,5) width 73: "Test result: "
    8       RenderMenuList {SELECT} at (75,2) size 67x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    9         RenderBlock (anonymous) at (1,1) size 65x23
    10           RenderText at (2,2) size 44x19
    11             text run at (2,2) width 44: "PASS"
     6      RenderText {#text} at (0,6) size 73x19
     7        text run at (0,6) width 73: "Test result: "
     8      RenderMenuList {SELECT} at (75,2) size 76x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     9        RenderBlock (anonymous) at (1,1) size 74x25
     10          RenderText at (3,3) size 44x19
     11            text run at (3,3) width 44: "PASS"
    1212      RenderText {#text} at (0,0) size 0x0
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-narrow-width-expected.checksum

    r70391 r76388  
    1 7651a19e11d3c5e7785596d2d6c5b526
     156e8dcc8294212b4f246fb98c323def0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-narrow-width-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 499: "This tests that select elements with a narrow width (1px) are rendered correctly."
    88      RenderBR {BR} at (499,15) size 0x0
    9       RenderMenuList {SELECT} at (0,21) size 2x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 21x23
    11           RenderText at (2,2) size 25x19
    12             text run at (2,2) width 25: "test"
    13       RenderBR {BR} at (2,39) size 0x0
    14       RenderMenuList {SELECT} at (0,50) size 2x25 [bgcolor=#0000FF] [border: (1px solid #000000)]
    15         RenderBlock (anonymous) at (1,1) size 21x23
    16           RenderText at (2,2) size 25x19
    17             text run at (2,2) width 25: "test"
     9      RenderMenuList {SELECT} at (0,21) size 2x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 30x25
     11          RenderText at (3,3) size 25x19
     12            text run at (3,3) width 25: "test"
     13      RenderBR {BR} at (2,40) size 0x0
     14      RenderMenuList {SELECT} at (0,52) size 2x27 [bgcolor=#0000FF] [border: (1px solid #000000)]
     15        RenderBlock (anonymous) at (1,1) size 30x25
     16          RenderText at (3,3) size 25x19
     17            text run at (3,3) width 25: "test"
    1818      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-no-overflow-expected.checksum

    r70391 r76388  
    1 567b4b455062372112cd01a45c180c3a
     18b52c9f2f237b74a0cc63b1389667857
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-no-overflow-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderMenuList {SELECT} at (0,0) size 249x19 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    7         RenderBlock (anonymous) at (1,1) size 247x17
    8           RenderText at (2,2) size 226x13
    9             text run at (2,2) width 226: "No overflow should be allowed on popup menus!"
     6      RenderMenuList {SELECT} at (0,0) size 251x21 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     7        RenderBlock (anonymous) at (1,1) size 249x19
     8          RenderText at (3,3) size 226x13
     9            text run at (3,3) width 226: "No overflow should be allowed on popup menus!"
    1010      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-restrict-line-height-expected.checksum

    r70391 r76388  
    1 715824d14881cd58f6947184cee1272c
     1ed58ade32759db9083b829f4753e14d2
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-restrict-line-height-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 417: "This tests that we don't honor line-height for styled popup buttons."
    88      RenderBR {BR} at (417,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 243x25 [bgcolor=#ADD8E6] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 241x23
    11           RenderText at (2,2) size 220x19
    12             text run at (2,2) width 220: "This text should not be clipped."
     9      RenderMenuList {SELECT} at (2,21) size 252x27 [bgcolor=#ADD8E6] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 250x25
     11          RenderText at (3,3) size 220x19
     12            text run at (3,3) width 220: "This text should not be clipped."
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-separator-painting-expected.checksum

    r70391 r76388  
    1 2ccfd9cb288e2bbc8cae5ba729d9b7e6
     161638fd7c8e9d773f366828bd187abb1
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-separator-painting-expected.txt

    r71410 r76388  
    55    RenderBody {BODY} at (8,8) size 784x584
    66      RenderBlock {DIV} at (0,0) size 784x6 [border: (3px solid #FFFFFF)]
    7       RenderBlock (anonymous) at (0,6) size 784x29
    8         RenderMenuList {SELECT} at (2,2) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #008000)]
    9           RenderBlock (anonymous) at (1,1) size 21x23
    10             RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
     7      RenderBlock (anonymous) at (0,6) size 784x31
     8        RenderMenuList {SELECT} at (2,2) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #008000)]
     9          RenderBlock (anonymous) at (1,1) size 30x25
     10            RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
    1111        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-style-color-expected.checksum

    r70391 r76388  
    1 cf51c7a61597754e740a2e37e2f1b078
     115d5425b9ba4fe0602ee6cfe19a6b629
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-style-color-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderMenuList {SELECT} at (2,2) size 74x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    7         RenderBlock (anonymous) at (1,1) size 72x23
    8           RenderText at (2,2) size 51x19
    9             text run at (2,2) width 51: "Default"
    10       RenderText {#text} at (78,5) size 4x19
    11         text run at (78,5) width 4: " "
    12       RenderMenuList {SELECT} at (84,2) size 53x25 [color=#FF0000] [bgcolor=#FFFFFF] [border: (1px solid #FF0000)]
    13         RenderBlock (anonymous) at (1,1) size 51x23
    14           RenderText at (2,2) size 30x19
    15             text run at (2,2) width 30: "Red"
    16       RenderText {#text} at (139,5) size 4x19
    17         text run at (139,5) width 4: " "
    18       RenderMenuList {SELECT} at (145,2) size 141x25 [bgcolor=#008000] [border: (1px solid #000000)]
    19         RenderBlock (anonymous) at (1,1) size 139x23
    20           RenderText at (2,2) size 118x19
    21             text run at (2,2) width 118: "Default on green"
    22       RenderText {#text} at (288,5) size 4x19
    23         text run at (288,5) width 4: " "
    24       RenderMenuList {SELECT} at (294,2) size 120x25 [color=#FF0000] [bgcolor=#008000] [border: (1px solid #FF0000)]
    25         RenderBlock (anonymous) at (1,1) size 118x23
    26           RenderText at (2,2) size 97x19
    27             text run at (2,2) width 97: "Red on green"
     6      RenderMenuList {SELECT} at (2,2) size 83x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     7        RenderBlock (anonymous) at (1,1) size 81x25
     8          RenderText at (3,3) size 51x19
     9            text run at (3,3) width 51: "Default"
     10      RenderText {#text} at (87,6) size 4x19
     11        text run at (87,6) width 4: " "
     12      RenderMenuList {SELECT} at (93,2) size 62x27 [color=#FF0000] [bgcolor=#FFFFFF] [border: (1px solid #FF0000)]
     13        RenderBlock (anonymous) at (1,1) size 60x25
     14          RenderText at (3,3) size 30x19
     15            text run at (3,3) width 30: "Red"
     16      RenderText {#text} at (157,6) size 4x19
     17        text run at (157,6) width 4: " "
     18      RenderMenuList {SELECT} at (163,2) size 150x27 [bgcolor=#008000] [border: (1px solid #000000)]
     19        RenderBlock (anonymous) at (1,1) size 148x25
     20          RenderText at (3,3) size 118x19
     21            text run at (3,3) width 118: "Default on green"
     22      RenderText {#text} at (315,6) size 4x19
     23        text run at (315,6) width 4: " "
     24      RenderMenuList {SELECT} at (321,2) size 129x27 [color=#FF0000] [bgcolor=#008000] [border: (1px solid #FF0000)]
     25        RenderBlock (anonymous) at (1,1) size 127x25
     26          RenderText at (3,3) size 97x19
     27            text run at (3,3) width 97: "Red on green"
    2828      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-width-change-expected.checksum

    r70391 r76388  
    1 eee878a7d9cb2fbee93d1a738003b9c3
     111cebee85c1ac7e1cbd433a6fe37da59
  • trunk/LayoutTests/platform/gtk/fast/forms/menulist-width-change-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderBlock (anonymous) at (0,0) size 784x67
     6      RenderBlock (anonymous) at (0,0) size 784x69
    77        RenderText {#text} at (0,0) size 663x19
    88          text run at (0,0) width 663: "This tests that when an option is dynamically added to a menu list, and it is too long for the current width,"
     
    1111          text run at (0,19) width 364: "that the select automatically recalculates the correct width."
    1212        RenderBR {BR} at (364,34) size 0x0
    13         RenderMenuList {SELECT} at (2,40) size 161x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    14           RenderBlock (anonymous) at (1,1) size 159x23
    15             RenderText at (2,2) size 38x19
    16               text run at (2,2) width 38: "Short"
     13        RenderMenuList {SELECT} at (2,40) size 170x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     14          RenderBlock (anonymous) at (1,1) size 168x25
     15            RenderText at (3,3) size 38x19
     16              text run at (3,3) width 38: "Short"
    1717        RenderText {#text} at (0,0) size 0x0
    18       RenderBlock {DIV} at (0,67) size 784x0
     18      RenderBlock {DIV} at (0,69) size 784x0
  • trunk/LayoutTests/platform/gtk/fast/forms/option-script-expected.checksum

    r70551 r76388  
    1 46c960e6bd418d36290b0909fa9ef5e3
     1fcec807918ed17d6dfbfbe0754a51ba9
  • trunk/LayoutTests/platform/gtk/fast/forms/option-script-expected.txt

    r71410 r76388  
    1212        text run at (109,19) width 316: "If the popup menu says \"document.write('Text')\". "
    1313      RenderBR {BR} at (425,34) size 0x0
    14       RenderMenuList {SELECT} at (2,40) size 54x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    15         RenderBlock (anonymous) at (1,1) size 52x23
    16           RenderText at (2,2) size 31x19
    17             text run at (2,2) width 31: "Text"
     14      RenderMenuList {SELECT} at (2,40) size 63x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     15        RenderBlock (anonymous) at (1,1) size 61x25
     16          RenderText at (3,3) size 31x19
     17            text run at (3,3) width 31: "Text"
    1818      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/option-strip-whitespace-expected.checksum

    r70551 r76388  
    1 6e2e9a2caf422251ec92a80f1256d9cb
     16e6e8cc0b0ad8de794f9c78c4e9b3207
  • trunk/LayoutTests/platform/gtk/fast/forms/option-strip-whitespace-expected.txt

    r71410 r76388  
    77        RenderText {#text} at (0,0) size 403x19
    88          text run at (0,0) width 403: "All of these selects should have the same amount of whitespace."
    9       RenderBlock (anonymous) at (0,35) size 784x333
     9      RenderBlock (anonymous) at (0,35) size 784x339
    1010        RenderText {#text} at (0,63) size 71x19
    1111          text run at (0,63) width 71: "Five Tabs: "
     
    1818        RenderBR {BR} at (181,182) size 0x0
    1919        RenderBR {BR} at (0,189) size 0x19
    20         RenderText {#text} at (0,213) size 298x19
    21           text run at (0,213) width 298: "Five Spaces (with leading/trailing whitespace): "
    22         RenderMenuList {SELECT} at (300,210) size 112x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    23           RenderBlock (anonymous) at (1,1) size 110x23
    24             RenderText at (2,2) size 89x19
    25               text run at (2,2) width 89: "Five Spaces"
    26         RenderBR {BR} at (414,228) size 0x0
    27         RenderBR {BR} at (0,237) size 0x19
    28         RenderText {#text} at (0,261) size 285x19
    29           text run at (0,261) width 285: "Five Tabs (with leading/trailing whitespace): "
    30         RenderMenuList {SELECT} at (287,258) size 94x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    31           RenderBlock (anonymous) at (1,1) size 92x23
    32             RenderText at (2,2) size 71x19
    33               text run at (2,2) width 71: "Five Tabs"
    34         RenderBR {BR} at (383,276) size 0x0
    35         RenderBR {BR} at (0,285) size 0x19
    36         RenderText {#text} at (0,309) size 126x19
    37           text run at (0,309) width 126: "Mixed Whitespace: "
    38         RenderMenuList {SELECT} at (128,306) size 94x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    39           RenderBlock (anonymous) at (1,1) size 92x23
    40             RenderText at (2,2) size 71x19
    41               text run at (2,2) width 71: "Five Tabs"
     20        RenderText {#text} at (0,214) size 298x19
     21          text run at (0,214) width 298: "Five Spaces (with leading/trailing whitespace): "
     22        RenderMenuList {SELECT} at (300,210) size 121x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     23          RenderBlock (anonymous) at (1,1) size 119x25
     24            RenderText at (3,3) size 89x19
     25              text run at (3,3) width 89: "Five Spaces"
     26        RenderBR {BR} at (423,229) size 0x0
     27        RenderBR {BR} at (0,239) size 0x19
     28        RenderText {#text} at (0,264) size 285x19
     29          text run at (0,264) width 285: "Five Tabs (with leading/trailing whitespace): "
     30        RenderMenuList {SELECT} at (287,260) size 103x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     31          RenderBlock (anonymous) at (1,1) size 101x25
     32            RenderText at (3,3) size 71x19
     33              text run at (3,3) width 71: "Five Tabs"
     34        RenderBR {BR} at (392,279) size 0x0
     35        RenderBR {BR} at (0,289) size 0x19
     36        RenderText {#text} at (0,314) size 126x19
     37          text run at (0,314) width 126: "Mixed Whitespace: "
     38        RenderMenuList {SELECT} at (128,310) size 103x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     39          RenderBlock (anonymous) at (1,1) size 101x25
     40            RenderText at (3,3) size 71x19
     41              text run at (3,3) width 71: "Five Tabs"
    4242        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/option-text-clip-expected.checksum

    r70551 r76388  
    1 5ecdef52e98bf79e01701e89dc247bd3
     17507e13e3fcdbdca9513fb0a81df397a
  • trunk/LayoutTests/platform/gtk/fast/forms/option-text-clip-expected.txt

    r71405 r76388  
    77        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. "
    88      RenderBR {BR} at (702,15) size 0x0
    9       RenderMenuList {SELECT} at (0,21) size 150x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 148x23
    11           RenderText at (2,2) size 184x19
    12             text run at (2,2) width 184: "12345 6789 ABCD EFGH"
     9      RenderMenuList {SELECT} at (0,21) size 150x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 148x25
     11          RenderText at (3,3) size 184x19
     12            text run at (3,3) width 184: "12345 6789 ABCD EFGH"
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-align-expected.checksum

    r70551 r76388  
    1 1dca7c3d7890bb475eaab39775ecbad7
     1bba0ef137021330143302c7a4cc49742
  • trunk/LayoutTests/platform/gtk/fast/forms/select-align-expected.txt

    r71405 r76388  
    77        RenderText {#text} at (0,0) size 575x19
    88          text run at (0,0) width 575: "The following select elements should all be rendered on the left, with their text left justified."
    9       RenderBlock (anonymous) at (0,35) size 784x145
    10         RenderMenuList {SELECT} at (0,2) size 300x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    11           RenderBlock (anonymous) at (1,1) size 298x23
    12             RenderText at (2,2) size 209x19
    13               text run at (2,2) width 209: "This is should be left justified."
    14         RenderText {#text} at (300,5) size 4x19
    15           text run at (300,5) width 4: " "
     9      RenderBlock (anonymous) at (0,35) size 784x155
     10        RenderMenuList {SELECT} at (0,2) size 300x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     11          RenderBlock (anonymous) at (1,1) size 298x25
     12            RenderText at (3,3) size 209x19
     13              text run at (3,3) width 209: "This is should be left justified."
     14        RenderText {#text} at (300,6) size 4x19
     15          text run at (300,6) width 4: " "
    1616        RenderBR {BR} at (0,0) size 0x0
    17         RenderMenuList {SELECT} at (0,31) size 300x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    18           RenderBlock (anonymous) at (1,1) size 298x23
    19             RenderText at (2,2) size 209x19
    20               text run at (2,2) width 209: "This is should be left justified."
    21         RenderText {#text} at (300,34) size 4x19
    22           text run at (300,34) width 4: " "
     17        RenderMenuList {SELECT} at (0,33) size 300x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     18          RenderBlock (anonymous) at (1,1) size 298x25
     19            RenderText at (3,3) size 209x19
     20              text run at (3,3) width 209: "This is should be left justified."
     21        RenderText {#text} at (300,37) size 4x19
     22          text run at (300,37) width 4: " "
    2323        RenderBR {BR} at (0,0) size 0x0
    24         RenderMenuList {SELECT} at (0,60) size 300x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    25           RenderBlock (anonymous) at (1,1) size 298x23
    26             RenderText at (2,2) size 209x19
    27               text run at (2,2) width 209: "This is should be left justified."
    28         RenderText {#text} at (300,63) size 4x19
    29           text run at (300,63) width 4: " "
     24        RenderMenuList {SELECT} at (0,64) size 300x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     25          RenderBlock (anonymous) at (1,1) size 298x25
     26            RenderText at (3,3) size 209x19
     27              text run at (3,3) width 209: "This is should be left justified."
     28        RenderText {#text} at (300,68) size 4x19
     29          text run at (300,68) width 4: " "
    3030        RenderBR {BR} at (0,0) size 0x0
    31         RenderMenuList {SELECT} at (0,89) size 300x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    32           RenderBlock (anonymous) at (1,1) size 298x23
    33             RenderText at (2,2) size 209x19
    34               text run at (2,2) width 209: "This is should be left justified."
    35         RenderText {#text} at (300,92) size 4x19
    36           text run at (300,92) width 4: " "
     31        RenderMenuList {SELECT} at (0,95) size 300x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     32          RenderBlock (anonymous) at (1,1) size 298x25
     33            RenderText at (3,3) size 209x19
     34              text run at (3,3) width 209: "This is should be left justified."
     35        RenderText {#text} at (300,99) size 4x19
     36          text run at (300,99) width 4: " "
    3737        RenderBR {BR} at (0,0) size 0x0
    38         RenderMenuList {SELECT} at (0,118) size 300x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    39           RenderBlock (anonymous) at (1,1) size 298x23
    40             RenderText at (2,2) size 209x19
    41               text run at (2,2) width 209: "This is should be left justified."
     38        RenderMenuList {SELECT} at (0,126) size 300x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     39          RenderBlock (anonymous) at (1,1) size 298x25
     40            RenderText at (3,3) size 209x19
     41              text run at (3,3) width 209: "This is should be left justified."
    4242        RenderText {#text} at (0,0) size 0x0
    4343        RenderText {#text} at (0,0) size 0x0
    44       RenderBlock {DIV} at (0,180) size 784x29
    45         RenderMenuList {SELECT} at (0,2) size 300x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    46           RenderBlock (anonymous) at (1,1) size 298x23
    47             RenderText at (2,2) size 209x19
    48               text run at (2,2) width 209: "This is should be left justified."
     44      RenderBlock {DIV} at (0,190) size 784x31
     45        RenderMenuList {SELECT} at (0,2) size 300x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     46          RenderBlock (anonymous) at (1,1) size 298x25
     47            RenderText at (3,3) size 209x19
     48              text run at (3,3) width 209: "This is should be left justified."
  • trunk/LayoutTests/platform/gtk/fast/forms/select-baseline-expected.checksum

    r70551 r76388  
    1 94494a77d7c099edbf82f044bddb5d16
     1054ec3a5be1a83dafe86e5aae17b42db
  • trunk/LayoutTests/platform/gtk/fast/forms/select-baseline-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 462: "This tests that empty select controls and buttons have the correct baseline."
    88      RenderBR {BR} at (462,15) size 0x0
    9       RenderMenuList {SELECT} at (2,22) size 23x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 21x23
    11           RenderBR at (2,2) size 0x19 [bgcolor=#FFFFFF]
    12       RenderText {#text} at (27,25) size 29x19
    13         text run at (27,25) width 29: " test "
    14       RenderMenuList {SELECT} at (58,22) size 48x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    15         RenderBlock (anonymous) at (1,1) size 46x23
    16           RenderText at (2,2) size 25x19
    17             text run at (2,2) width 25: "test"
    18       RenderText {#text} at (108,25) size 4x19
    19         text run at (108,25) width 4: " "
    20       RenderMenuList {SELECT} at (114,22) size 23x25 [color=#00008B] [bgcolor=#ADD8E6] [border: (1px solid #00008B)]
    21         RenderBlock (anonymous) at (1,1) size 21x23
    22           RenderBR at (2,2) size 0x19 [bgcolor=#ADD8E6]
    23       RenderText {#text} at (139,25) size 29x19
    24         text run at (139,25) width 29: " test "
    25       RenderMenuList {SELECT} at (170,22) size 48x25 [color=#00008B] [bgcolor=#ADD8E6] [border: (1px solid #00008B)]
    26         RenderBlock (anonymous) at (1,1) size 46x23
    27           RenderText at (2,2) size 25x19
    28             text run at (2,2) width 25: "test"
    29       RenderText {#text} at (220,25) size 4x19
    30         text run at (220,25) width 4: " "
    31       RenderButton {BUTTON} at (226,21) size 16x28 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
    32       RenderText {#text} at (244,25) size 4x19
    33         text run at (244,25) width 4: " "
    34       RenderButton {BUTTON} at (250,21) size 41x28 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
     9      RenderMenuList {SELECT} at (2,21) size 32x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 30x25
     11          RenderBR at (3,3) size 0x19 [bgcolor=#FFFFFF]
     12      RenderText {#text} at (36,25) size 29x19
     13        text run at (36,25) width 29: " test "
     14      RenderMenuList {SELECT} at (67,21) size 57x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     15        RenderBlock (anonymous) at (1,1) size 55x25
     16          RenderText at (3,3) size 25x19
     17            text run at (3,3) width 25: "test"
     18      RenderText {#text} at (126,25) size 4x19
     19        text run at (126,25) width 4: " "
     20      RenderMenuList {SELECT} at (132,21) size 32x27 [color=#00008B] [bgcolor=#ADD8E6] [border: (1px solid #00008B)]
     21        RenderBlock (anonymous) at (1,1) size 30x25
     22          RenderBR at (3,3) size 0x19 [bgcolor=#ADD8E6]
     23      RenderText {#text} at (166,25) size 29x19
     24        text run at (166,25) width 29: " test "
     25      RenderMenuList {SELECT} at (197,21) size 57x27 [color=#00008B] [bgcolor=#ADD8E6] [border: (1px solid #00008B)]
     26        RenderBlock (anonymous) at (1,1) size 55x25
     27          RenderText at (3,3) size 25x19
     28            text run at (3,3) width 25: "test"
     29      RenderText {#text} at (256,25) size 4x19
     30        text run at (256,25) width 4: " "
     31      RenderButton {BUTTON} at (262,21) size 16x28 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
     32      RenderText {#text} at (280,25) size 4x19
     33        text run at (280,25) width 4: " "
     34      RenderButton {BUTTON} at (286,21) size 41x28 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
    3535        RenderBlock (anonymous) at (8,4) size 25x19
    3636          RenderText {#text} at (0,0) size 25x19
    3737            text run at (0,0) width 25: "test"
    38       RenderText {#text} at (293,25) size 4x19
    39         text run at (293,25) width 4: " "
    40       RenderButton {BUTTON} at (299,21) size 16x28 [color=#00008B] [bgcolor=#ADD8E6] [border: (2px outset #C0C0C0)]
    41       RenderText {#text} at (317,25) size 4x19
    42         text run at (317,25) width 4: " "
    43       RenderButton {BUTTON} at (323,21) size 41x28 [color=#00008B] [bgcolor=#ADD8E6] [border: (2px outset #C0C0C0)]
     38      RenderText {#text} at (329,25) size 4x19
     39        text run at (329,25) width 4: " "
     40      RenderButton {BUTTON} at (335,21) size 16x28 [color=#00008B] [bgcolor=#ADD8E6] [border: (2px outset #C0C0C0)]
     41      RenderText {#text} at (353,25) size 4x19
     42        text run at (353,25) width 4: " "
     43      RenderButton {BUTTON} at (359,21) size 41x28 [color=#00008B] [bgcolor=#ADD8E6] [border: (2px outset #C0C0C0)]
    4444        RenderBlock (anonymous) at (8,4) size 25x19
    4545          RenderText {#text} at (0,0) size 25x19
  • trunk/LayoutTests/platform/gtk/fast/forms/select-change-listbox-to-popup-expected.checksum

    r70551 r76388  
    1 ac1cee27404d787777c2d4cb853aab5e
     12365a746803dac086f9c48f68bc3c5b6
  • trunk/LayoutTests/platform/gtk/fast/forms/select-change-listbox-to-popup-expected.txt

    r71410 r76388  
    77        text run at (0,0) width 441: "This tests that you can dynamically change a list box to a popup menu"
    88      RenderBR {BR} at (441,15) size 0x0
    9       RenderMenuList {SELECT} at (2,21) size 273x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    10         RenderBlock (anonymous) at (1,1) size 271x23
    11           RenderText at (2,2) size 250x19
    12             text run at (2,2) width 250: "This should turn into a popup menu"
     9      RenderMenuList {SELECT} at (2,21) size 282x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     10        RenderBlock (anonymous) at (1,1) size 280x25
     11          RenderText at (3,3) size 250x19
     12            text run at (3,3) width 250: "This should turn into a popup menu"
    1313      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.checksum

    r70551 r76388  
    1 b7903234a079003151be56fd7c108b42
     14e58fe38d46bfee1923064cd3927fe9b
  • trunk/LayoutTests/platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.txt

    r71410 r76388  
    11layer at (0,0) size 800x600
    22  RenderView at (0,0) size 800x600
    3 layer at (0,0) size 800x98
    4   RenderBlock {HTML} at (0,0) size 800x98
    5     RenderBody {BODY} at (8,8) size 784x74
    6       RenderTable {TABLE} at (0,0) size 62x39 [border: (1px outset #808080)]
    7         RenderTableSection {TBODY} at (1,1) size 60x37
    8           RenderTableRow {TR} at (0,2) size 60x33
    9             RenderTableCell {TD} at (2,2) size 56x33 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
    10               RenderMenuList {SELECT} at (4,4) size 48x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    11                 RenderBlock (anonymous) at (1,1) size 46x23
    12                   RenderText at (2,2) size 25x19
    13                     text run at (2,2) width 25: "test"
    14       RenderBlock {P} at (0,55) size 784x19
     3layer at (0,0) size 800x100
     4  RenderBlock {HTML} at (0,0) size 800x100
     5    RenderBody {BODY} at (8,8) size 784x76
     6      RenderTable {TABLE} at (0,0) size 71x41 [border: (1px outset #808080)]
     7        RenderTableSection {TBODY} at (1,1) size 69x39
     8          RenderTableRow {TR} at (0,2) size 69x35
     9            RenderTableCell {TD} at (2,2) size 65x35 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     10              RenderMenuList {SELECT} at (4,4) size 57x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     11                RenderBlock (anonymous) at (1,1) size 55x25
     12                  RenderText at (3,3) size 25x19
     13                    text run at (3,3) width 25: "test"
     14      RenderBlock {P} at (0,57) size 784x19
    1515        RenderText {#text} at (0,0) size 447x19
    1616          text run at (0,0) width 447: "The select element in the table above must not spill outside of the table."
  • trunk/LayoutTests/platform/gtk/fast/forms/select-disabled-appearance-expected.checksum

    r70551 r76388  
    1 2337fbb0d60b43316c267695de08e2db
     1ca6fcf70715e385843ee63aead6ab8b8
  • trunk/LayoutTests/platform/gtk/fast/forms/select-disabled-appearance-expected.txt

    r71410 r76388  
    1616        RenderText {#text} at (705,0) size 4x19
    1717          text run at (705,0) width 4: "."
    18       RenderBlock {P} at (0,35) size 784x29
    19         RenderMenuList {SELECT} at (2,2) size 192x25 [color=#808080] [bgcolor=#FFFFFF] [border: (1px solid #808080)]
    20           RenderBlock (anonymous) at (1,1) size 190x23
    21             RenderText at (2,2) size 169x19
    22               text run at (2,2) width 169: "This text should be gray"
     18      RenderBlock {P} at (0,35) size 784x31
     19        RenderMenuList {SELECT} at (2,2) size 201x27 [color=#808080] [bgcolor=#FFFFFF] [border: (1px solid #808080)]
     20          RenderBlock (anonymous) at (1,1) size 199x25
     21            RenderText at (3,3) size 169x19
     22              text run at (3,3) width 169: "This text should be gray"
    2323        RenderText {#text} at (0,0) size 0x0
    24       RenderBlock {P} at (0,80) size 784x29
    25         RenderMenuList {SELECT} at (2,2) size 199x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    26           RenderBlock (anonymous) at (1,1) size 197x23
    27             RenderText at (2,2) size 176x19
    28               text run at (2,2) width 176: "This text should be black"
     24      RenderBlock {P} at (0,82) size 784x31
     25        RenderMenuList {SELECT} at (2,2) size 208x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     26          RenderBlock (anonymous) at (1,1) size 206x25
     27            RenderText at (3,3) size 176x19
     28              text run at (3,3) width 176: "This text should be black"
    2929        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-initial-position-expected.checksum

    r70551 r76388  
    1 53f5ceb61bdb5a00f083566e171d37eb
     16cdf58214e15a6099a09de8abeef2187
  • trunk/LayoutTests/platform/gtk/fast/forms/select-initial-position-expected.txt

    r71410 r76388  
    2929        text run at (0,312) width 93: "initial selected:"
    3030      RenderBR {BR} at (93,327) size 0x0
    31       RenderMenuList {SELECT} at (2,333) size 186x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    32         RenderBlock (anonymous) at (1,1) size 184x23
    33           RenderText at (2,2) size 163x19
    34             text run at (2,2) width 163: "this should be selected"
    35       RenderText {#text} at (190,336) size 4x19
    36         text run at (190,336) width 4: " "
    37       RenderBR {BR} at (194,351) size 0x0
    38       RenderText {#text} at (0,360) size 161x19
    39         text run at (0,360) width 161: "dynamic selected change:"
    40       RenderBR {BR} at (161,375) size 0x0
    41       RenderMenuList {SELECT} at (2,381) size 186x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    42         RenderBlock (anonymous) at (1,1) size 184x23
    43           RenderText at (2,2) size 163x19
    44             text run at (2,2) width 163: "this should be selected"
    45       RenderText {#text} at (190,384) size 4x19
    46         text run at (190,384) width 4: " "
     31      RenderMenuList {SELECT} at (2,333) size 195x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     32        RenderBlock (anonymous) at (1,1) size 193x25
     33          RenderText at (3,3) size 163x19
     34            text run at (3,3) width 163: "this should be selected"
     35      RenderText {#text} at (199,337) size 4x19
     36        text run at (199,337) width 4: " "
     37      RenderBR {BR} at (203,352) size 0x0
     38      RenderText {#text} at (0,362) size 161x19
     39        text run at (0,362) width 161: "dynamic selected change:"
     40      RenderBR {BR} at (161,377) size 0x0
     41      RenderMenuList {SELECT} at (2,383) size 195x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     42        RenderBlock (anonymous) at (1,1) size 193x25
     43          RenderText at (3,3) size 163x19
     44            text run at (3,3) width 163: "this should be selected"
     45      RenderText {#text} at (199,387) size 4x19
     46        text run at (199,387) width 4: " "
    4747      RenderText {#text} at (0,0) size 0x0
    4848      RenderBR {BR} at (0,0) size 0x0
    49       RenderText {#text} at (0,408) size 211x19
    50         text run at (0,408) width 211: "dynamic insert of selected option:"
    51       RenderBR {BR} at (211,423) size 0x0
    52       RenderMenuList {SELECT} at (2,429) size 186x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    53         RenderBlock (anonymous) at (1,1) size 184x23
    54           RenderText at (2,2) size 163x19
    55             text run at (2,2) width 163: "this should be selected"
     49      RenderText {#text} at (0,412) size 211x19
     50        text run at (0,412) width 211: "dynamic insert of selected option:"
     51      RenderBR {BR} at (211,427) size 0x0
     52      RenderMenuList {SELECT} at (2,433) size 195x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     53        RenderBlock (anonymous) at (1,1) size 193x25
     54          RenderText at (3,3) size 163x19
     55            text run at (3,3) width 163: "this should be selected"
    5656      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-selected-expected.checksum

    r70551 r76388  
    1 845afbdab252d83324765ede0d21ebe8
     1558755d082ea2aaa1cddda98086a01c4
  • trunk/LayoutTests/platform/gtk/fast/forms/select-selected-expected.txt

    r71405 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderMenuList {SELECT} at (2,2) size 328x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    7         RenderBlock (anonymous) at (1,1) size 326x23
    8           RenderText at (2,2) size 219x19
    9             text run at (2,2) width 219: "should see this option selected"
     6      RenderMenuList {SELECT} at (2,2) size 337x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     7        RenderBlock (anonymous) at (1,1) size 335x25
     8          RenderText at (3,3) size 219x19
     9            text run at (3,3) width 219: "should see this option selected"
    1010      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-size-expected.checksum

    r70551 r76388  
    1 35038de083da4a81c30429ad3254fe27
     1caa53273c227ed7e0b62e579aa2ca4b6
  • trunk/LayoutTests/platform/gtk/fast/forms/select-size-expected.txt

    r71410 r76388  
    88        text run at (0,19) width 406: "style rule that determines whether to use a menu list or a list box."
    99      RenderBR {BR} at (406,34) size 0x0
    10       RenderMenuList {SELECT} at (2,40) size 48x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    11         RenderBlock (anonymous) at (1,1) size 46x23
    12           RenderText at (2,2) size 25x19
    13             text run at (2,2) width 25: "test"
     10      RenderMenuList {SELECT} at (2,40) size 57x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     11        RenderBlock (anonymous) at (1,1) size 55x25
     12          RenderText at (3,3) size 25x19
     13            text run at (3,3) width 25: "test"
    1414      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-style-expected.checksum

    r70551 r76388  
    1 9af859696cc788e43721657153194868
     13d76d5f5789d630a4e97a326335907f1
  • trunk/LayoutTests/platform/gtk/fast/forms/select-style-expected.txt

    r71410 r76388  
    88        text run at (250,0) width 304: "(Aqua for now- later, we will honor the styling)."
    99      RenderBR {BR} at (554,15) size 0x0
    10       RenderMenuList {SELECT} at (2,21) size 48x25 [bgcolor=#FF0000] [border: (1px solid #000000)]
    11         RenderBlock (anonymous) at (1,1) size 46x23
    12           RenderText at (2,2) size 25x19
    13             text run at (2,2) width 25: "test"
    14       RenderText {#text} at (52,24) size 4x19
    15         text run at (52,24) width 4: " "
    16       RenderBR {BR} at (56,39) size 0x0
    17       RenderText {#text} at (0,48) size 528x19
    18         text run at (0,48) width 528: "This tests that background color is white by default regardless of the parent element."
    19       RenderBR {BR} at (528,63) size 0x0
    20       RenderInline {SPAN} at (0,0) size 66x29 [bgcolor=#FF0000]
     10      RenderMenuList {SELECT} at (2,21) size 57x27 [bgcolor=#FF0000] [border: (1px solid #000000)]
     11        RenderBlock (anonymous) at (1,1) size 55x25
     12          RenderText at (3,3) size 25x19
     13            text run at (3,3) width 25: "test"
     14      RenderText {#text} at (61,25) size 4x19
     15        text run at (61,25) width 4: " "
     16      RenderBR {BR} at (65,40) size 0x0
     17      RenderText {#text} at (0,50) size 528x19
     18        text run at (0,50) width 528: "This tests that background color is white by default regardless of the parent element."
     19      RenderBR {BR} at (528,65) size 0x0
     20      RenderInline {SPAN} at (0,0) size 75x29 [bgcolor=#FF0000]
    2121        RenderText {#text} at (0,0) size 0x0
    22         RenderMenuList {SELECT} at (7,69) size 48x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    23           RenderBlock (anonymous) at (1,1) size 46x23
    24             RenderText at (2,2) size 25x19
    25               text run at (2,2) width 25: "test"
    26         RenderText {#text} at (57,72) size 4x19
    27           text run at (57,72) width 4: " "
     22        RenderMenuList {SELECT} at (7,71) size 57x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     23          RenderBlock (anonymous) at (1,1) size 55x25
     24            RenderText at (3,3) size 25x19
     25              text run at (3,3) width 25: "test"
     26        RenderText {#text} at (66,75) size 4x19
     27          text run at (66,75) width 4: " "
    2828      RenderText {#text} at (0,0) size 0x0
    2929      RenderBR {BR} at (0,0) size 0x0
    30       RenderText {#text} at (0,96) size 625x19
    31         text run at (0,96) width 625: "This tests that background color is inherited from the parent if background-color:inherit is specified."
    32       RenderBR {BR} at (625,111) size 0x0
    33       RenderInline {SPAN} at (0,0) size 66x29 [bgcolor=#FF0000]
     30      RenderText {#text} at (0,100) size 625x19
     31        text run at (0,100) width 625: "This tests that background color is inherited from the parent if background-color:inherit is specified."
     32      RenderBR {BR} at (625,115) size 0x0
     33      RenderInline {SPAN} at (0,0) size 75x29 [bgcolor=#FF0000]
    3434        RenderText {#text} at (0,0) size 0x0
    35         RenderMenuList {SELECT} at (7,117) size 48x25 [border: (1px solid #000000)]
    36           RenderBlock (anonymous) at (1,1) size 46x23
    37             RenderText at (2,2) size 25x19
    38               text run at (2,2) width 25: "test"
    39         RenderText {#text} at (57,120) size 4x19
    40           text run at (57,120) width 4: " "
     35        RenderMenuList {SELECT} at (7,121) size 57x27 [border: (1px solid #000000)]
     36          RenderBlock (anonymous) at (1,1) size 55x25
     37            RenderText at (3,3) size 25x19
     38              text run at (3,3) width 25: "test"
     39        RenderText {#text} at (66,125) size 4x19
     40          text run at (66,125) width 4: " "
    4141      RenderText {#text} at (0,0) size 0x0
    4242      RenderBR {BR} at (0,0) size 0x0
    43       RenderText {#text} at (0,144) size 637x19
    44         text run at (0,144) width 637: "This tests that background color is the same as the parent if background-color:transparent is specified."
    45       RenderBR {BR} at (637,159) size 0x0
    46       RenderInline {SPAN} at (0,0) size 66x29 [bgcolor=#FF0000]
     43      RenderText {#text} at (0,150) size 637x19
     44        text run at (0,150) width 637: "This tests that background color is the same as the parent if background-color:transparent is specified."
     45      RenderBR {BR} at (637,165) size 0x0
     46      RenderInline {SPAN} at (0,0) size 75x29 [bgcolor=#FF0000]
    4747        RenderText {#text} at (0,0) size 0x0
    48         RenderMenuList {SELECT} at (7,165) size 48x25 [border: (1px solid #000000)]
    49           RenderBlock (anonymous) at (1,1) size 46x23
    50             RenderText at (2,2) size 25x19
    51               text run at (2,2) width 25: "test"
    52         RenderText {#text} at (57,168) size 4x19
    53           text run at (57,168) width 4: " "
     48        RenderMenuList {SELECT} at (7,171) size 57x27 [border: (1px solid #000000)]
     49          RenderBlock (anonymous) at (1,1) size 55x25
     50            RenderText at (3,3) size 25x19
     51              text run at (3,3) width 25: "test"
     52        RenderText {#text} at (66,175) size 4x19
     53          text run at (66,175) width 4: " "
    5454      RenderText {#text} at (0,0) size 0x0
    5555      RenderBR {BR} at (0,0) size 0x0
    56       RenderText {#text} at (0,192) size 498x19
    57         text run at (0,192) width 498: "This tests that background is white if only background-image:none is specified."
    58       RenderBR {BR} at (498,207) size 0x0
    59       RenderMenuList {SELECT} at (2,213) size 48x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    60         RenderBlock (anonymous) at (1,1) size 46x23
    61           RenderText at (2,2) size 25x19
    62             text run at (2,2) width 25: "test"
    63       RenderText {#text} at (52,216) size 4x19
    64         text run at (52,216) width 4: " "
    65       RenderBR {BR} at (56,231) size 0x0
    66       RenderText {#text} at (0,240) size 418x19
    67         text run at (0,240) width 418: "This tests that the image specified for background-image is visible."
    68       RenderBR {BR} at (418,255) size 0x0
    69       RenderMenuList {SELECT} at (2,261) size 48x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    70         RenderBlock (anonymous) at (1,1) size 46x23
    71           RenderText at (2,2) size 25x19
    72             text run at (2,2) width 25: "test"
     56      RenderText {#text} at (0,200) size 498x19
     57        text run at (0,200) width 498: "This tests that background is white if only background-image:none is specified."
     58      RenderBR {BR} at (498,215) size 0x0
     59      RenderMenuList {SELECT} at (2,221) size 57x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     60        RenderBlock (anonymous) at (1,1) size 55x25
     61          RenderText at (3,3) size 25x19
     62            text run at (3,3) width 25: "test"
     63      RenderText {#text} at (61,225) size 4x19
     64        text run at (61,225) width 4: " "
     65      RenderBR {BR} at (65,240) size 0x0
     66      RenderText {#text} at (0,250) size 418x19
     67        text run at (0,250) width 418: "This tests that the image specified for background-image is visible."
     68      RenderBR {BR} at (418,265) size 0x0
     69      RenderMenuList {SELECT} at (2,271) size 57x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     70        RenderBlock (anonymous) at (1,1) size 55x25
     71          RenderText at (3,3) size 25x19
     72            text run at (3,3) width 25: "test"
    7373      RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-visual-hebrew-expected.checksum

    r70551 r76388  
    1 5f89937705959a3a9366c2bbed34e2d4
     1008037879295d2c27b0f7082f8880bf2
  • trunk/LayoutTests/platform/gtk/fast/forms/select-visual-hebrew-expected.txt

    r71410 r76388  
    1313          text run at (0,0) width 434 LTR override: "Text on the pop-up and in the list should look like this: "
    1414          text run at (434,0) width 43 LTR override: "\x{5E8}\x{5D5}\x{5EA}\x{5E4}\x{5DB}"
    15       RenderBlock (anonymous) at (0,107) size 784x29
    16         RenderMenuList {SELECT} at (2,2) size 66x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    17           RenderBlock (anonymous) at (1,1) size 64x23
    18             RenderText at (2,2) size 43x19
    19               text run at (2,2) width 43 RTL: "\x{5DB}\x{5E4}\x{5EA}\x{5D5}\x{5E8}"
     15      RenderBlock (anonymous) at (0,107) size 784x31
     16        RenderMenuList {SELECT} at (2,2) size 75x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     17          RenderBlock (anonymous) at (1,1) size 73x25
     18            RenderText at (3,3) size 43x19
     19              text run at (3,3) width 43 RTL: "\x{5DB}\x{5E4}\x{5EA}\x{5D5}\x{5E8}"
    2020        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/select-writing-direction-natural-expected.checksum

    r70551 r76388  
    1 210d96d7a3f338f9931cf8a74188d294
     1084274fc75440b71bd5a944ad3e1ed1c
  • trunk/LayoutTests/platform/gtk/fast/forms/select-writing-direction-natural-expected.txt

    r71410 r76388  
    2323          text run at (660,0) width 107: " should be on"
    2424          text run at (0,19) width 73: "the right."
    25       RenderBlock {DIV} at (0,108) size 784x58
    26         RenderBlock {DIV} at (0,0) size 784x29
    27           RenderMenuList {SELECT} at (0,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    28             RenderBlock (anonymous) at (1,1) size 68x23
    29               RenderText at (2,2) size 21x19
    30                 text run at (2,2) width 11: "A"
    31                 text run at (13,2) width 10 RTL: "\x{5D0}"
    32           RenderText {#text} at (70,5) size 5x19
    33             text run at (70,5) width 5: " "
    34           RenderMenuList {SELECT} at (75,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    35             RenderBlock (anonymous) at (1,1) size 68x23
    36               RenderText at (2,2) size 21x19
    37                 text run at (2,2) width 11: "A"
    38                 text run at (13,2) width 10 RTL: "\x{5D0}"
    39           RenderText {#text} at (145,5) size 5x19
    40             text run at (145,5) width 5: " "
    41           RenderMenuList {SELECT} at (150,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    42             RenderBlock (anonymous) at (1,1) size 68x23
    43               RenderText at (2,2) size 26x19
    44                 text run at (2,2) width 11: "A"
    45                 text run at (13,2) width 15 RTL: "(\x{5D0}"
    46           RenderText {#text} at (220,5) size 5x19
    47             text run at (220,5) width 5: " "
    48           RenderMenuList {SELECT} at (225,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    49             RenderBlock (anonymous) at (1,1) size 68x23
    50               RenderText at (2,2) size 26x19
    51                 text run at (2,2) width 16: "(A"
    52                 text run at (18,2) width 10 RTL: "\x{5D0}"
     25      RenderBlock {DIV} at (0,108) size 784x62
     26        RenderBlock {DIV} at (0,0) size 784x31
     27          RenderMenuList {SELECT} at (0,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     28            RenderBlock (anonymous) at (1,1) size 68x25
     29              RenderText at (3,3) size 21x19
     30                text run at (3,3) width 11: "A"
     31                text run at (14,3) width 10 RTL: "\x{5D0}"
     32          RenderText {#text} at (70,6) size 5x19
     33            text run at (70,6) width 5: " "
     34          RenderMenuList {SELECT} at (75,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     35            RenderBlock (anonymous) at (1,1) size 68x25
     36              RenderText at (3,3) size 21x19
     37                text run at (3,3) width 11: "A"
     38                text run at (14,3) width 10 RTL: "\x{5D0}"
     39          RenderText {#text} at (145,6) size 5x19
     40            text run at (145,6) width 5: " "
     41          RenderMenuList {SELECT} at (150,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     42            RenderBlock (anonymous) at (1,1) size 68x25
     43              RenderText at (3,3) size 26x19
     44                text run at (3,3) width 11: "A"
     45                text run at (14,3) width 15 RTL: "(\x{5D0}"
     46          RenderText {#text} at (220,6) size 5x19
     47            text run at (220,6) width 5: " "
     48          RenderMenuList {SELECT} at (225,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     49            RenderBlock (anonymous) at (1,1) size 68x25
     50              RenderText at (3,3) size 26x19
     51                text run at (3,3) width 16: "(A"
     52                text run at (19,3) width 10 RTL: "\x{5D0}"
    5353          RenderText {#text} at (0,0) size 0x0
    54         RenderBlock {DIV} at (0,29) size 784x29
    55           RenderMenuList {SELECT} at (489,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    56             RenderBlock (anonymous) at (1,1) size 68x23
    57               RenderText at (2,2) size 21x19
    58                 text run at (2,2) width 11: "A"
    59                 text run at (13,2) width 10 RTL: "\x{5D0}"
    60           RenderText {#text} at (559,5) size 5x19
    61             text run at (559,5) width 5: " "
    62           RenderMenuList {SELECT} at (564,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    63             RenderBlock (anonymous) at (1,1) size 68x23
    64               RenderText at (2,2) size 21x19
    65                 text run at (2,2) width 11: "A"
    66                 text run at (13,2) width 10 RTL: "\x{5D0}"
    67           RenderText {#text} at (634,5) size 5x19
    68             text run at (634,5) width 5: " "
    69           RenderMenuList {SELECT} at (639,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    70             RenderBlock (anonymous) at (1,1) size 68x23
    71               RenderText at (2,2) size 26x19
    72                 text run at (2,2) width 11: "A"
    73                 text run at (13,2) width 15 RTL: "(\x{5D0}"
    74           RenderText {#text} at (709,5) size 5x19
    75             text run at (709,5) width 5: " "
    76           RenderMenuList {SELECT} at (714,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    77             RenderBlock (anonymous) at (1,1) size 68x23
    78               RenderText at (2,2) size 26x19
    79                 text run at (2,2) width 16: "(A"
    80                 text run at (18,2) width 10 RTL: "\x{5D0}"
     54        RenderBlock {DIV} at (0,31) size 784x31
     55          RenderMenuList {SELECT} at (489,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     56            RenderBlock (anonymous) at (1,1) size 68x25
     57              RenderText at (3,3) size 21x19
     58                text run at (3,3) width 11: "A"
     59                text run at (14,3) width 10 RTL: "\x{5D0}"
     60          RenderText {#text} at (559,6) size 5x19
     61            text run at (559,6) width 5: " "
     62          RenderMenuList {SELECT} at (564,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     63            RenderBlock (anonymous) at (1,1) size 68x25
     64              RenderText at (3,3) size 21x19
     65                text run at (3,3) width 11: "A"
     66                text run at (14,3) width 10 RTL: "\x{5D0}"
     67          RenderText {#text} at (634,6) size 5x19
     68            text run at (634,6) width 5: " "
     69          RenderMenuList {SELECT} at (639,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     70            RenderBlock (anonymous) at (1,1) size 68x25
     71              RenderText at (3,3) size 26x19
     72                text run at (3,3) width 11: "A"
     73                text run at (14,3) width 15 RTL: "(\x{5D0}"
     74          RenderText {#text} at (709,6) size 5x19
     75            text run at (709,6) width 5: " "
     76          RenderMenuList {SELECT} at (714,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     77            RenderBlock (anonymous) at (1,1) size 68x25
     78              RenderText at (3,3) size 26x19
     79                text run at (3,3) width 16: "(A"
     80                text run at (19,3) width 10 RTL: "\x{5D0}"
    8181          RenderText {#text} at (0,0) size 0x0
    82       RenderBlock {DIV} at (0,166) size 784x58
    83         RenderBlock {DIV} at (0,0) size 784x29
    84           RenderMenuList {SELECT} at (225,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    85             RenderBlock (anonymous) at (1,1) size 68x23
    86               RenderText at (19,2) size 21x19
    87                 text run at (19,2) width 11: "A"
    88                 text run at (30,2) width 10 RTL: "\x{5D0}"
    89           RenderText {#text} at (220,5) size 5x19
    90             text run at (220,5) width 5 RTL: " "
    91           RenderMenuList {SELECT} at (150,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    92             RenderBlock (anonymous) at (1,1) size 68x23
    93               RenderText at (19,2) size 21x19
    94                 text run at (19,2) width 11: "A"
    95                 text run at (30,2) width 10 RTL: "\x{5D0}"
    96           RenderText {#text} at (145,5) size 5x19
    97             text run at (145,5) width 5 RTL: " "
    98           RenderMenuList {SELECT} at (75,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    99             RenderBlock (anonymous) at (1,1) size 68x23
    100               RenderText at (19,2) size 26x19
    101                 text run at (19,2) width 11: "A"
    102                 text run at (30,2) width 15 RTL: "(\x{5D0}"
    103           RenderText {#text} at (70,5) size 5x19
    104             text run at (70,5) width 5 RTL: " "
    105           RenderMenuList {SELECT} at (0,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    106             RenderBlock (anonymous) at (1,1) size 68x23
    107               RenderText at (19,2) size 26x19
    108                 text run at (19,2) width 16: "(A"
    109                 text run at (35,2) width 10 RTL: "\x{5D0}"
     82      RenderBlock {DIV} at (0,170) size 784x62
     83        RenderBlock {DIV} at (0,0) size 784x31
     84          RenderMenuList {SELECT} at (225,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     85            RenderBlock (anonymous) at (1,1) size 68x25
     86              RenderText at (27,3) size 21x19
     87                text run at (27,3) width 11: "A"
     88                text run at (38,3) width 10 RTL: "\x{5D0}"
     89          RenderText {#text} at (220,6) size 5x19
     90            text run at (220,6) width 5 RTL: " "
     91          RenderMenuList {SELECT} at (150,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     92            RenderBlock (anonymous) at (1,1) size 68x25
     93              RenderText at (27,3) size 21x19
     94                text run at (27,3) width 11: "A"
     95                text run at (38,3) width 10 RTL: "\x{5D0}"
     96          RenderText {#text} at (145,6) size 5x19
     97            text run at (145,6) width 5 RTL: " "
     98          RenderMenuList {SELECT} at (75,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     99            RenderBlock (anonymous) at (1,1) size 68x25
     100              RenderText at (27,3) size 26x19
     101                text run at (27,3) width 11: "A"
     102                text run at (38,3) width 15 RTL: "(\x{5D0}"
     103          RenderText {#text} at (70,6) size 5x19
     104            text run at (70,6) width 5 RTL: " "
     105          RenderMenuList {SELECT} at (0,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     106            RenderBlock (anonymous) at (1,1) size 68x25
     107              RenderText at (27,3) size 26x19
     108                text run at (27,3) width 16: "(A"
     109                text run at (43,3) width 10 RTL: "\x{5D0}"
    110110          RenderText {#text} at (0,0) size 0x0
    111         RenderBlock {DIV} at (0,29) size 784x29
    112           RenderMenuList {SELECT} at (714,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    113             RenderBlock (anonymous) at (1,1) size 68x23
    114               RenderText at (19,2) size 21x19
    115                 text run at (19,2) width 11: "A"
    116                 text run at (30,2) width 10 RTL: "\x{5D0}"
    117           RenderText {#text} at (709,5) size 5x19
    118             text run at (709,5) width 5 RTL: " "
    119           RenderMenuList {SELECT} at (639,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    120             RenderBlock (anonymous) at (1,1) size 68x23
    121               RenderText at (19,2) size 21x19
    122                 text run at (19,2) width 11: "A"
    123                 text run at (30,2) width 10 RTL: "\x{5D0}"
    124           RenderText {#text} at (634,5) size 5x19
    125             text run at (634,5) width 5 RTL: " "
    126           RenderMenuList {SELECT} at (564,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    127             RenderBlock (anonymous) at (1,1) size 68x23
    128               RenderText at (19,2) size 26x19
    129                 text run at (19,2) width 11: "A"
    130                 text run at (30,2) width 15 RTL: "(\x{5D0}"
    131           RenderText {#text} at (559,5) size 5x19
    132             text run at (559,5) width 5 RTL: " "
    133           RenderMenuList {SELECT} at (489,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    134             RenderBlock (anonymous) at (1,1) size 68x23
    135               RenderText at (19,2) size 26x19
    136                 text run at (19,2) width 16: "(A"
    137                 text run at (35,2) width 10 RTL: "\x{5D0}"
     111        RenderBlock {DIV} at (0,31) size 784x31
     112          RenderMenuList {SELECT} at (714,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     113            RenderBlock (anonymous) at (1,1) size 68x25
     114              RenderText at (27,3) size 21x19
     115                text run at (27,3) width 11: "A"
     116                text run at (38,3) width 10 RTL: "\x{5D0}"
     117          RenderText {#text} at (709,6) size 5x19
     118            text run at (709,6) width 5 RTL: " "
     119          RenderMenuList {SELECT} at (639,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     120            RenderBlock (anonymous) at (1,1) size 68x25
     121              RenderText at (27,3) size 21x19
     122                text run at (27,3) width 11: "A"
     123                text run at (38,3) width 10 RTL: "\x{5D0}"
     124          RenderText {#text} at (634,6) size 5x19
     125            text run at (634,6) width 5 RTL: " "
     126          RenderMenuList {SELECT} at (564,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     127            RenderBlock (anonymous) at (1,1) size 68x25
     128              RenderText at (27,3) size 26x19
     129                text run at (27,3) width 11: "A"
     130                text run at (38,3) width 15 RTL: "(\x{5D0}"
     131          RenderText {#text} at (559,6) size 5x19
     132            text run at (559,6) width 5 RTL: " "
     133          RenderMenuList {SELECT} at (489,2) size 70x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     134            RenderBlock (anonymous) at (1,1) size 68x25
     135              RenderText at (27,3) size 26x19
     136                text run at (27,3) width 16: "(A"
     137                text run at (43,3) width 10 RTL: "\x{5D0}"
    138138          RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/fast/forms/stuff-on-my-optgroup-expected.checksum

    r70551 r76388  
    1 686a328a2e7b36839a08c33b3e9327c3
     1e23c980f63589309fd70a4a94df1f197
  • trunk/LayoutTests/platform/gtk/fast/forms/stuff-on-my-optgroup-expected.txt

    r71410 r76388  
    44  RenderBlock {HTML} at (0,0) size 800x600
    55    RenderBody {BODY} at (8,8) size 784x584
    6       RenderMenuList {SELECT} at (2,2) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    7         RenderBlock (anonymous) at (1,1) size 68x23
    8           RenderText at (2,2) size 30x19
    9             text run at (2,2) width 30: "One"
    10       RenderBR {BR} at (74,20) size 0x0
    11       RenderMenuList {SELECT} at (2,31) size 70x25 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
    12         RenderBlock (anonymous) at (1,1) size 68x23
    13           RenderText at (2,2) size 30x19
    14             text run at (2,2) width 30: "One"
     6      RenderMenuList {SELECT} at (2,2) size 79x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     7        RenderBlock (anonymous) at (1,1) size 77x25
     8          RenderText at (3,3) size 30x19
     9            text run at (3,3) width 30: "One"
     10      RenderBR {BR} at (83,21) size 0x0
     11      RenderMenuList {SELECT} at (2,33) size 79x27 [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     12        RenderBlock (anonymous) at (1,1) size 77x25
     13          RenderText at (3,3) size 30x19
     14            text run at (3,3) width 30: "One"
    1515      RenderText {#text} at (0,0) size 0x0
  • trunk/Source/WebCore/ChangeLog

    r76387 r76388  
     12011-01-21  Martin Robinson  <mrobinson@igalia.com>
     2
     3        Reviewed by Xan Lopez.
     4
     5        [GTK] Menulist text often collides with separator
     6        https://bugs.webkit.org/show_bug.cgi?id=51155
     7
     8        Move menulist rendering to RenderThemeGtk and correct padding code
     9        for separators in menulists.
     10
     11        * platform/gtk/RenderThemeGtk.cpp:
     12        (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize new widget members.
     13        (WebCore::RenderThemeGtk::getComboBoxSeparatorWidth): Added.
     14        (WebCore::RenderThemeGtk::comboBoxArrowSize): Added.
     15        (WebCore::getButtonInnerBorder): Added.
     16        (WebCore::RenderThemeGtk::getComboBoxPadding): Do this manually instead of using
     17        Mozilla code.
     18        (WebCore::RenderThemeGtk::paintMenuList): Ditto.
     19        (WebCore::setupWidget): Abstracted this part of the setupWidgetAndAddToContainer
     20        out to handle child widgets of comboboxes.
     21        (WebCore::RenderThemeGtk::setupWidgetAndAddToContainer): Abstracted out setupWidget.
     22        (WebCore::RenderThemeGtk::gtkContainer): Added.
     23        (WebCore::getGtkComboBoxButton): Added.
     24        (WebCore::getGtkComboBoxPieces): Added.
     25        (WebCore::RenderThemeGtk::gtkComboBox): Call setupWidget here.
     26        (WebCore::RenderThemeGtk::refreshComboBoxChildren): Added.
     27        (WebCore::RenderThemeGtk::gtkComboBoxButton): Added.
     28        (WebCore::RenderThemeGtk::gtkComboBoxArrow): Added.
     29        (WebCore::RenderThemeGtk::gtkComboBoxSeparator): Added.
     30        * platform/gtk/RenderThemeGtk.h: Added new members and methods.
     31        * platform/gtk/WidgetRenderingContext.h: Added new members and methods.
     32        * platform/gtk/WidgetRenderingContextGtk2.cpp:
     33        (WebCore::WidgetRenderingContext::gtkPaintArrow):
     34        (WebCore::WidgetRenderingContext::gtkPaintVLine):
     35        * platform/gtk/WidgetRenderingContextGtk3.cpp:
     36        (WebCore::WidgetRenderingContext::gtkPaintArrow):
     37        (WebCore::WidgetRenderingContext::gtkPaintVLine):
     38        * platform/gtk/gtk2drawing.c: Removed code for drawing menulists and buttons.
     39        (moz_gtk_init):
     40        (moz_gtk_get_widget_border):
     41        (moz_gtk_widget_paint):
     42        * platform/gtk/gtk3drawing.c:
     43        (moz_gtk_init):
     44        (moz_gtk_get_widget_border):
     45        (moz_gtk_widget_paint):
     46        * platform/gtk/gtkdrawing.h:
     47
    1482011-01-21  Sam Weinig  <sam@webkit.org>
    249
  • trunk/Source/WebCore/platform/gtk/RenderThemeGtk.cpp

    r76351 r76388  
    353353}
    354354
    355 static double getScreenDPI()
     355double RenderThemeGtk::getScreenDPI()
    356356{
    357357    // FIXME: Really this should be the widget's screen.
  • trunk/Source/WebCore/platform/gtk/RenderThemeGtk.h

    r76351 r76388  
    176176    static void setTextInputBorders(RenderStyle*);
    177177    GRefPtr<GdkPixbuf> getStockIcon(GType, const char* iconName, gint direction, gint state, gint iconSize);
     178    static double getScreenDPI();
    178179
    179180#if ENABLE(VIDEO)
     
    196197    void setupWidgetAndAddToContainer(GtkWidget*, GtkWidget*) const;
    197198    bool paintRenderObject(GtkThemeWidgetType, RenderObject*, GraphicsContext*, const IntRect&, int flags = 0);
     199    void refreshComboBoxChildren() const;
     200    void getComboBoxPadding(RenderStyle*, int& left, int& top, int& right, int& bottom) const;
     201    int getComboBoxSeparatorWidth() const;
     202    int comboBoxArrowSize(RenderStyle*) const;
    198203    GtkThemeParts m_themeParts;
     204
    199205    GtkWidget* gtkButton() const;
    200206    GtkWidget* gtkEntry() const;
     
    206212    GtkWidget* gtkCheckButton() const;
    207213    GtkWidget* gtkProgressBar() const;
     214    GtkWidget* gtkComboBox() const;
     215    GtkWidget* gtkComboBoxButton() const;
     216    GtkWidget* gtkComboBoxArrow() const;
     217    GtkWidget* gtkComboBoxSeparator() const;
    208218
    209219    mutable GtkWidget* m_gtkWindow;
     
    217227    mutable GtkWidget* m_gtkCheckButton;
    218228    mutable GtkWidget* m_gtkProgressBar;
    219 
     229    mutable GtkWidget* m_gtkComboBox;
     230    mutable GtkWidget* m_gtkComboBoxButton;
     231    mutable GtkWidget* m_gtkComboBoxArrow;
     232    mutable GtkWidget* m_gtkComboBoxSeparator;
    220233    bool m_themePartsHaveRGBAColormap;
    221234    friend class WidgetRenderingContext;
  • trunk/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp

    r76192 r76388  
    6565    m_gtkCheckButton = 0;
    6666    m_gtkProgressBar = 0;
     67    m_gtkComboBox = 0;
     68    m_gtkComboBoxButton = 0;
     69    m_gtkComboBoxArrow = 0;
     70    m_gtkComboBoxSeparator = 0;
    6771
    6872    memset(&m_themeParts, 0, sizeof(GtkThemeParts));
     
    301305}
    302306
    303 static void getComboBoxPadding(RenderStyle* style, int& left, int& top, int& right, int& bottom)
     307int RenderThemeGtk::getComboBoxSeparatorWidth() const
     308{
     309    GtkWidget* separator = gtkComboBoxSeparator();
     310    if (!separator)
     311        return 0;
     312
     313    gboolean hasWideSeparators = FALSE;
     314    gint separatorWidth = 0;
     315    gtk_widget_style_get(separator,
     316                         "wide-separators", &hasWideSeparators,
     317                         "separator-width", &separatorWidth,
     318                         NULL);
     319    if (hasWideSeparators)
     320        return separatorWidth;
     321    return gtk_widget_get_style(separator)->xthickness;
     322}
     323
     324int RenderThemeGtk::comboBoxArrowSize(RenderStyle* style) const
     325{
     326    // Taking the font size and reversing the DPI conversion seems to match
     327    // GTK+ rendering as closely as possible.
     328    return style->font().size() * (72.0 / RenderThemeGtk::getScreenDPI());
     329}
     330
     331static void getButtonInnerBorder(GtkWidget* button, int& left, int& top, int& right, int& bottom)
     332{
     333    GtkStyle* style = gtk_widget_get_style(button);
     334    int outerBorder = gtk_container_get_border_width(GTK_CONTAINER(button));
     335    static GtkBorder defaultInnerBorder = {1, 1, 1, 1};
     336    GtkBorder* innerBorder;
     337    gtk_widget_style_get(button, "inner-border", &innerBorder, NULL);
     338    if (!innerBorder)
     339        innerBorder = &defaultInnerBorder;
     340
     341    left = outerBorder + innerBorder->left + style->xthickness;
     342    right = outerBorder + innerBorder->right + style->xthickness;
     343    top = outerBorder + innerBorder->top + style->ythickness;
     344    bottom = outerBorder + innerBorder->bottom + style->ythickness;
     345
     346    if (innerBorder != &defaultInnerBorder)
     347        gtk_border_free(innerBorder);
     348}
     349
     350
     351void RenderThemeGtk::getComboBoxPadding(RenderStyle* style, int& left, int& top, int& right, int& bottom) const
    304352{
    305353    // If this menu list button isn't drawn using the native theme, we
     
    307355    if (style->appearance() == NoControlPart)
    308356        return;
    309     moz_gtk_get_widget_border(MOZ_GTK_DROPDOWN, &left, &top, &right, &bottom,
    310                               gtkTextDirection(style->direction()), TRUE);
     357
     358    // A combo box button is a button with widgets packed into it.
     359    GtkStyle* buttonWidgetStyle = gtk_widget_get_style(gtkComboBoxButton());
     360    getButtonInnerBorder(gtkComboBoxButton(), left, top, right, bottom);
     361
     362    // Add xthickness amount of padding for each side of the separator. This ensures
     363    // that the text does not bump up against the separator.
     364    int arrowAndSeperatorLength = comboBoxArrowSize(style) +
     365        getComboBoxSeparatorWidth() + (3 * buttonWidgetStyle->xthickness);
     366
     367    if (style->direction() == RTL)
     368        left += arrowAndSeperatorLength;
     369    else
     370        right += arrowAndSeperatorLength;
    311371}
    312372
     
    341401bool RenderThemeGtk::paintMenuList(RenderObject* object, const PaintInfo& info, const IntRect& rect)
    342402{
    343     return paintRenderObject(MOZ_GTK_DROPDOWN, object, info.context, rect);
     403    if (paintButton(object, info, rect))
     404        return true;
     405
     406    // Menu list button painting strategy.
     407    // For buttons with appears-as-list set to false (having a separator):
     408    // | left border | Button text | xthickness | vseparator | xthickness | arrow | xthickness | right border |
     409    // For buttons with appears-as-list set to true (not having a separator):
     410    // | left border | Button text | arrow | xthickness | right border |
     411
     412    int leftBorder = 0, rightBorder = 0, bottomBorder = 0, topBorder = 0;
     413    getButtonInnerBorder(gtkComboBoxButton(), leftBorder, topBorder, rightBorder, bottomBorder);
     414    RenderStyle* style = object->style();
     415    int arrowSize = comboBoxArrowSize(style);
     416    GtkStyle* buttonStyle = gtk_widget_get_style(gtkComboBoxButton());
     417
     418    IntRect arrowRect(0, (rect.height() - arrowSize) / 2, arrowSize, arrowSize);
     419    if (style->direction() == RTL)
     420        arrowRect.setX(leftBorder + buttonStyle->xthickness);
     421    else
     422        arrowRect.setX(rect.width() - rightBorder - buttonStyle->xthickness - arrowSize);
     423    GtkShadowType shadowType = isPressed(object) ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
     424
     425    WidgetRenderingContext widgetContext(info.context, rect);
     426    GtkStateType stateType = getGtkStateType(this, object);
     427    widgetContext.gtkPaintArrow(arrowRect, gtkComboBoxArrow(), stateType, shadowType, GTK_ARROW_DOWN, "arrow");
     428
     429    // Some combo boxes do not have a separator.
     430    GtkWidget* separator = gtkComboBoxSeparator();
     431    if (!separator)
     432        return false;
     433
     434    // We want to decrease the height of the separator based on the focus padding of the button.
     435    gint focusPadding = 0, focusWidth = 0;
     436    gtk_widget_style_get(gtkComboBoxButton(),
     437                         "focus-line-width", &focusWidth,
     438                         "focus-padding", &focusPadding, NULL);
     439    topBorder += focusPadding + focusWidth;
     440    bottomBorder += focusPadding + focusWidth;
     441    int separatorWidth = getComboBoxSeparatorWidth();
     442    IntRect separatorRect(0, topBorder, separatorWidth, rect.height() - topBorder - bottomBorder);
     443    if (style->direction() == RTL)
     444        separatorRect.setX(arrowRect.x() + arrowRect.width() + buttonStyle->xthickness + separatorWidth);
     445    else
     446        separatorRect.setX(arrowRect.x() - buttonStyle->xthickness - separatorWidth);
     447
     448    gboolean hasWideSeparators = FALSE;
     449    gtk_widget_style_get(separator, "wide-separators", &hasWideSeparators, NULL);
     450    if (hasWideSeparators)
     451        widgetContext.gtkPaintBox(separatorRect, separator, GTK_STATE_NORMAL, GTK_SHADOW_ETCHED_OUT, "vseparator");
     452    else
     453        widgetContext.gtkPaintVLine(separatorRect, separator, GTK_STATE_NORMAL, "vseparator");
     454
     455    return false;
    344456}
    345457
     
    576688}
    577689
    578 void RenderThemeGtk::setupWidgetAndAddToContainer(GtkWidget* widget, GtkWidget* window) const
    579 {
    580     gtk_container_add(GTK_CONTAINER(window), widget);
     690static void setupWidget(GtkWidget* widget)
     691{
    581692    gtk_widget_realize(widget);
    582693    g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
     694}
     695
     696void RenderThemeGtk::setupWidgetAndAddToContainer(GtkWidget* widget, GtkWidget* window) const
     697{
     698    gtk_container_add(GTK_CONTAINER(window), widget);
     699    setupWidget(widget);
    583700
    584701    // FIXME: Perhaps this should only be called for the containing window or parent container.
     
    593710    m_gtkWindow = gtk_window_new(GTK_WINDOW_POPUP);
    594711    gtk_widget_set_colormap(m_gtkWindow, m_themeParts.colormap);
    595     gtk_widget_realize(m_gtkWindow);
     712    setupWidget(m_gtkWindow);
    596713    gtk_widget_set_name(m_gtkWindow, "MozillaGtkWidget");
    597714
     
    673790}
    674791
     792static void getGtkComboBoxButton(GtkWidget* widget, gpointer target)
     793{
     794    if (!GTK_IS_TOGGLE_BUTTON(widget))
     795        return;
     796    GtkWidget** widgetTarget = static_cast<GtkWidget**>(target);
     797    *widgetTarget = widget;
     798}
     799
     800typedef struct {
     801    GtkWidget* arrow;
     802    GtkWidget* separator;
     803} ComboBoxWidgetPieces;
     804
     805static void getGtkComboBoxPieces(GtkWidget* widget, gpointer data)
     806{
     807    if (GTK_IS_ARROW(widget)) {
     808        static_cast<ComboBoxWidgetPieces*>(data)->arrow = widget;
     809        return;
     810    }
     811    if (GTK_IS_SEPARATOR(widget))
     812        static_cast<ComboBoxWidgetPieces*>(data)->separator = widget;
     813}
     814
     815GtkWidget* RenderThemeGtk::gtkComboBox() const
     816{
     817    if (m_gtkComboBox)
     818        return m_gtkComboBox;
     819    m_gtkComboBox = gtk_combo_box_new();
     820    setupWidgetAndAddToContainer(m_gtkComboBox, gtkContainer());
     821    return m_gtkComboBox;
     822}
     823
     824void RenderThemeGtk::refreshComboBoxChildren() const
     825{
     826    gtkComboBox(); // Ensure that we've initialized the combo box.
     827
     828    // Some themes look at widget ancestry to determine how to render widgets, so
     829    // get the GtkButton that is the actual child of the combo box.
     830    gtk_container_forall(GTK_CONTAINER(m_gtkComboBox), getGtkComboBoxButton, &m_gtkComboBoxButton);
     831    ASSERT(m_gtkComboBoxButton);
     832    setupWidget(m_gtkComboBoxButton);
     833    g_object_add_weak_pointer(G_OBJECT(m_gtkComboBoxButton), reinterpret_cast<gpointer*>(&m_gtkComboBoxButton));
     834
     835    ComboBoxWidgetPieces pieces = { 0, 0 };
     836    GtkWidget* buttonChild = gtk_bin_get_child(GTK_BIN(gtkComboBoxButton()));
     837    if (GTK_IS_HBOX(buttonChild))
     838        gtk_container_forall(GTK_CONTAINER(buttonChild), getGtkComboBoxPieces, &pieces);
     839    else if (GTK_IS_ARROW(buttonChild))
     840        pieces.arrow = buttonChild;
     841
     842    ASSERT(pieces.arrow);
     843    m_gtkComboBoxArrow = pieces.arrow;
     844    setupWidget(m_gtkComboBoxArrow);
     845    // When the style changes, the combo box may destroy its children.
     846    g_object_add_weak_pointer(G_OBJECT(m_gtkComboBoxArrow), reinterpret_cast<gpointer*>(&m_gtkComboBoxArrow));
     847
     848    m_gtkComboBoxSeparator = pieces.separator;
     849    if (m_gtkComboBoxSeparator) {
     850        setupWidget(m_gtkComboBoxSeparator);
     851        // When the style changes, the combo box may destroy its children.
     852        g_object_add_weak_pointer(G_OBJECT(m_gtkComboBoxSeparator), reinterpret_cast<gpointer*>(&m_gtkComboBoxSeparator));
     853    }
     854}
     855
     856GtkWidget* RenderThemeGtk::gtkComboBoxButton() const
     857{
     858    if (m_gtkComboBoxButton)
     859        return m_gtkComboBoxButton;
     860    refreshComboBoxChildren();
     861    ASSERT(m_gtkComboBoxButton);
     862    return m_gtkComboBoxButton;
     863}
     864
     865GtkWidget* RenderThemeGtk::gtkComboBoxArrow() const
     866{
     867    if (m_gtkComboBoxArrow)
     868        return m_gtkComboBoxArrow;
     869    refreshComboBoxChildren();
     870    ASSERT(m_gtkComboBoxArrow);
     871    return m_gtkComboBoxArrow;
     872}
     873
     874GtkWidget* RenderThemeGtk::gtkComboBoxSeparator() const
     875{
     876    // m_gtkComboBoxSeparator may be null either because we haven't initialized the combo box
     877    // or because the combo boxes in this theme don't have separators. If m_gtkComboBoxArrow
     878    // arrow isn't null, we definitely have initialized the combo box.
     879    if (m_gtkComboBoxArrow || m_gtkComboBoxButton)
     880        return m_gtkComboBoxSeparator;
     881    refreshComboBoxChildren();
     882    return m_gtkComboBoxSeparator;
     883}
    675884
    676885GtkWidget* RenderThemeGtk::gtkScrollbar()
  • trunk/Source/WebCore/platform/gtk/WidgetRenderingContext.cpp

    r76182 r76388  
    202202}
    203203
     204void WidgetRenderingContext::gtkPaintArrow(const IntRect& rect, GtkWidget* widget, GtkStateType stateType, GtkShadowType shadowType, int arrowDirection, const gchar* detail)
     205{
     206    GdkRectangle paintRect = { m_paintRect.x + rect.x(), m_paintRect.y + rect.y(), rect.width(), rect.height() };
     207    gtk_paint_arrow(gtk_widget_get_style(widget), m_target, stateType, shadowType, &paintRect, widget, detail,
     208                    static_cast<GtkArrowType>(arrowDirection), TRUE, paintRect.x, paintRect.y, paintRect.width, paintRect.height);
     209}
     210
     211void WidgetRenderingContext::gtkPaintVLine(const IntRect& rect, GtkWidget* widget, GtkStateType stateType, const gchar* detail)
     212{
     213    GdkRectangle paintRect = { m_paintRect.x + rect.x(), m_paintRect.y + rect.y(), rect.width(), rect.height() };
     214    gtk_paint_vline(gtk_widget_get_style(widget), m_target, stateType, &paintRect, widget, detail,
     215                    paintRect.y, paintRect.y + paintRect.height, paintRect.x);
     216
     217}
    204218
    205219}
  • trunk/Source/WebCore/platform/gtk/WidgetRenderingContext.h

    r76182 r76388  
    4646    void gtkPaintOption(const IntRect&, GtkWidget*, GtkStateType, GtkShadowType, const gchar*);
    4747    void gtkPaintShadow(const IntRect&, GtkWidget*, GtkStateType, GtkShadowType, const gchar*);
     48    void gtkPaintArrow(const IntRect&, GtkWidget*, GtkStateType, GtkShadowType, int arrowDirection, const gchar*);
     49    void gtkPaintVLine(const IntRect&, GtkWidget*, GtkStateType, const gchar*);
    4850
    4951private:
  • trunk/Source/WebCore/platform/gtk/gtk2drawing.c

    r76192 r76388  
    6161static GtkThemeParts *gParts = NULL;
    6262static style_prop_t style_prop_func;
    63 static gboolean have_arrow_scaling;
    6463static gboolean is_initialized;
    6564
     
    117116
    118117static gint
    119 ensure_button_widget()
    120 {
    121     if (!gParts->buttonWidget) {
    122         gParts->buttonWidget = gtk_button_new_with_label("M");
    123         setup_widget_prototype(gParts->buttonWidget);
    124     }
    125     return MOZ_GTK_SUCCESS;
    126 }
    127 
    128 static gint
    129 ensure_toggle_button_widget()
    130 {
    131     if (!gParts->toggleButtonWidget) {
    132         gParts->toggleButtonWidget = gtk_toggle_button_new();
    133         setup_widget_prototype(gParts->toggleButtonWidget);
    134         /* toggle button must be set active to get the right style on hover. */
    135         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gParts->toggleButtonWidget), TRUE);
    136   }
    137   return MOZ_GTK_SUCCESS;
    138 }
    139 
    140 static gint
    141 ensure_button_arrow_widget()
    142 {
    143     if (!gParts->buttonArrowWidget) {
    144         ensure_toggle_button_widget();
    145 
    146         gParts->buttonArrowWidget = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
    147         gtk_container_add(GTK_CONTAINER(gParts->toggleButtonWidget), gParts->buttonArrowWidget);
    148         gtk_widget_realize(gParts->buttonArrowWidget);
    149     }
    150     return MOZ_GTK_SUCCESS;
    151 }
    152 
    153 static gint
    154118ensure_scrollbar_widget()
    155119{
     
    162126        setup_widget_prototype(gParts->horizScrollbarWidget);
    163127    }
    164     return MOZ_GTK_SUCCESS;
    165 }
    166 
    167 /* We need to have pointers to the inner widgets (button, separator, arrow)
    168  * of the ComboBox to get the correct rendering from theme engines which
    169  * special cases their look. Since the inner layout can change, we ask GTK
    170  * to NULL our pointers when they are about to become invalid because the
    171  * corresponding widgets don't exist anymore. It's the role of
    172  * g_object_add_weak_pointer().
    173  * Note that if we don't find the inner widgets (which shouldn't happen), we
    174  * fallback to use generic "non-inner" widgets, and they don't need that kind
    175  * of weak pointer since they are explicit children of gParts->protoWindow and as
    176  * such GTK holds a strong reference to them. */
    177 static void
    178 moz_gtk_get_combo_box_inner_button(GtkWidget *widget, gpointer client_data)
    179 {
    180     if (GTK_IS_TOGGLE_BUTTON(widget)) {
    181         gParts->comboBoxButtonWidget = widget;
    182         g_object_add_weak_pointer(G_OBJECT(widget),
    183                                   (gpointer) &gParts->comboBoxButtonWidget);
    184         gtk_widget_realize(widget);
    185         g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
    186     }
    187 }
    188 
    189 static void
    190 moz_gtk_get_combo_box_button_inner_widgets(GtkWidget *widget,
    191                                            gpointer client_data)
    192 {
    193     if (GTK_IS_SEPARATOR(widget)) {
    194         gParts->comboBoxSeparatorWidget = widget;
    195         g_object_add_weak_pointer(G_OBJECT(widget),
    196                                   (gpointer) &gParts->comboBoxSeparatorWidget);
    197     } else if (GTK_IS_ARROW(widget)) {
    198         gParts->comboBoxArrowWidget = widget;
    199         g_object_add_weak_pointer(G_OBJECT(widget),
    200                                   (gpointer) &gParts->comboBoxArrowWidget);
    201     } else
    202         return;
    203     gtk_widget_realize(widget);
    204     g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
    205 }
    206 
    207 static gint
    208 ensure_combo_box_widgets()
    209 {
    210     GtkWidget* buttonChild;
    211 
    212     if (gParts->comboBoxButtonWidget && gParts->comboBoxArrowWidget)
    213         return MOZ_GTK_SUCCESS;
    214 
    215     /* Create a ComboBox if needed */
    216     if (!gParts->comboBoxWidget) {
    217         gParts->comboBoxWidget = gtk_combo_box_new();
    218         setup_widget_prototype(gParts->comboBoxWidget);
    219     }
    220 
    221     /* Get its inner Button */
    222     gtk_container_forall(GTK_CONTAINER(gParts->comboBoxWidget),
    223                          moz_gtk_get_combo_box_inner_button,
    224                          NULL);
    225 
    226     if (gParts->comboBoxButtonWidget) {
    227         /* Get the widgets inside the Button */
    228         buttonChild = gtk_bin_get_child(GTK_BIN(gParts->comboBoxButtonWidget));
    229         if (GTK_IS_HBOX(buttonChild)) {
    230             /* appears-as-list = FALSE, cell-view = TRUE; the button
    231              * contains an hbox. This hbox is there because the ComboBox
    232              * needs to place a cell renderer, a separator, and an arrow in
    233              * the button when appears-as-list is FALSE. */
    234             gtk_container_forall(GTK_CONTAINER(buttonChild),
    235                                  moz_gtk_get_combo_box_button_inner_widgets,
    236                                  NULL);
    237         } else if(GTK_IS_ARROW(buttonChild)) {
    238             /* appears-as-list = TRUE, or cell-view = FALSE;
    239              * the button only contains an arrow */
    240             gParts->comboBoxArrowWidget = buttonChild;
    241             g_object_add_weak_pointer(G_OBJECT(buttonChild), (gpointer)
    242                                       &gParts->comboBoxArrowWidget);
    243             gtk_widget_realize(gParts->comboBoxArrowWidget);
    244             g_object_set_data(G_OBJECT(gParts->comboBoxArrowWidget),
    245                               "transparent-bg-hint", GINT_TO_POINTER(TRUE));
    246         }
    247     } else {
    248         /* Shouldn't be reached with current internal gtk implementation; we
    249          * use a generic toggle button as last resort fallback to avoid
    250          * crashing. */
    251         ensure_toggle_button_widget();
    252         gParts->comboBoxButtonWidget = gParts->toggleButtonWidget;
    253     }
    254 
    255     if (!gParts->comboBoxArrowWidget) {
    256         /* Shouldn't be reached with current internal gtk implementation;
    257          * we gParts->buttonArrowWidget as last resort fallback to avoid
    258          * crashing. */
    259         ensure_button_arrow_widget();
    260         gParts->comboBoxArrowWidget = gParts->buttonArrowWidget;
    261     }
    262 
    263     /* We don't test the validity of gParts->comboBoxSeparatorWidget since there
    264      * is none when "appears-as-list" = TRUE or "cell-view" = FALSE; if it
    265      * is invalid we just won't paint it. */
    266 
    267128    return MOZ_GTK_SUCCESS;
    268129}
     
    316177}
    317178
    318 static gint
    319 moz_gtk_button_paint(GdkDrawable* drawable, GdkRectangle* rect,
    320                      GdkRectangle* cliprect, GtkWidgetState* state,
    321                      GtkReliefStyle relief, GtkWidget* widget,
    322                      GtkTextDirection direction)
    323 {
    324     GtkShadowType shadow_type;
    325     GtkStyle* style = gtk_widget_get_style(widget);
    326     GtkStateType button_state = ConvertGtkState(state);
    327     gint x = rect->x, y=rect->y, width=rect->width, height=rect->height;
    328 
    329     gboolean interior_focus;
    330     gint focus_width, focus_pad;
    331 
    332     moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
    333 
    334     gtk_widget_set_state(widget, button_state);
    335     gtk_widget_set_direction(widget, direction);
    336 
    337     if (state->isDefault)
    338         GTK_WIDGET_SET_FLAGS(widget, GTK_HAS_DEFAULT);
    339 
    340     gtk_button_set_relief(GTK_BUTTON(widget), relief);
    341 
    342     /* Some theme engines love to cause us pain in that gtk_paint_focus is a
    343        no-op on buttons and button-like widgets. They only listen to this flag. */
    344     if (state->focused && !state->disabled)
    345         GTK_WIDGET_SET_FLAGS(widget, GTK_HAS_FOCUS);
    346 
    347     if (!interior_focus && state->focused) {
    348         x += focus_width + focus_pad;
    349         y += focus_width + focus_pad;
    350         width -= 2 * (focus_width + focus_pad);
    351         height -= 2 * (focus_width + focus_pad);
    352     }
    353 
    354     shadow_type = button_state == GTK_STATE_ACTIVE ||
    355                       state->depressed ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
    356  
    357     if (state->isDefault && relief == GTK_RELIEF_NORMAL) {
    358         gtk_paint_box(style, drawable, button_state, shadow_type, cliprect,
    359                       widget, "buttondefault", x, y, width, height);                   
    360     }
    361  
    362     if (relief != GTK_RELIEF_NONE || state->depressed ||
    363            (button_state != GTK_STATE_NORMAL &&
    364             button_state != GTK_STATE_INSENSITIVE)) {
    365         TSOffsetStyleGCs(style, x, y);
    366         /* the following line can trigger an assertion (Crux theme)
    367            file ../../gdk/gdkwindow.c: line 1846 (gdk_window_clear_area):
    368            assertion `GDK_IS_WINDOW (window)' failed */
    369         gtk_paint_box(style, drawable, button_state, shadow_type, cliprect,
    370                       widget, "button", x, y, width, height);
    371     }
    372 
    373     if (state->focused) {
    374         if (interior_focus) {
    375             GtkStyle* style = gtk_widget_get_style(widget);
    376             x += style->xthickness + focus_pad;
    377             y += style->ythickness + focus_pad;
    378             width -= 2 * (style->xthickness + focus_pad);
    379             height -= 2 * (style->ythickness + focus_pad);
    380         } else {
    381             x -= focus_width + focus_pad;
    382             y -= focus_width + focus_pad;
    383             width += 2 * (focus_width + focus_pad);
    384             height += 2 * (focus_width + focus_pad);
    385         }
    386 
    387         TSOffsetStyleGCs(style, x, y);
    388         gtk_paint_focus(style, drawable, button_state, cliprect,
    389                         widget, "button", x, y, width, height);
    390     }
    391 
    392     GTK_WIDGET_UNSET_FLAGS(widget, GTK_HAS_DEFAULT);
    393     GTK_WIDGET_UNSET_FLAGS(widget, GTK_HAS_FOCUS);
    394     return MOZ_GTK_SUCCESS;
    395 }
    396 
    397179gint
    398180moz_gtk_init()
     
    401183
    402184    is_initialized = TRUE;
    403     have_arrow_scaling = (gtk_major_version > 2 ||
    404                           (gtk_major_version == 2 && gtk_minor_version >= 12));
    405185
    406186    /* Add style property to GtkEntry.
     
    414194                             FALSE,
    415195                             G_PARAM_READWRITE));
    416 
    417     return MOZ_GTK_SUCCESS;
    418 }
    419 
    420 gint
    421 moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
    422                          gint* focus_width, gint* focus_pad)
    423 {
    424     gtk_widget_style_get (widget,
    425                           "interior-focus", interior_focus,
    426                           "focus-line-width", focus_width,
    427                           "focus-padding", focus_pad,
    428                           NULL);
    429 
    430     return MOZ_GTK_SUCCESS;
    431 }
    432 
    433 gint
    434 moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
    435 {
    436     static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
    437     GtkBorder *tmp_border;
    438 
    439     gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
    440 
    441     if (tmp_border) {
    442         *inner_border = *tmp_border;
    443         gtk_border_free(tmp_border);
    444     }
    445     else
    446         *inner_border = default_inner_border;
    447 
    448     return MOZ_GTK_SUCCESS;
    449 }
    450 
    451 static gint
    452 calculate_button_inner_rect(GtkWidget* button, GdkRectangle* rect,
    453                             GdkRectangle* inner_rect,
    454                             GtkTextDirection direction,
    455                             gboolean ignore_focus)
    456 {
    457     GtkBorder inner_border;
    458     gboolean interior_focus;
    459     gint focus_width, focus_pad;
    460     GtkStyle* style;
    461 
    462     style = gtk_widget_get_style(button);
    463 
    464     /* This mirrors gtkbutton's child positioning */
    465     moz_gtk_button_get_inner_border(button, &inner_border);
    466     moz_gtk_widget_get_focus(button, &interior_focus,
    467                              &focus_width, &focus_pad);
    468 
    469     if (ignore_focus)
    470         focus_width = focus_pad = 0;
    471 
    472     inner_rect->x = rect->x + XTHICKNESS(style) + focus_width + focus_pad;
    473     inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
    474                         inner_border.left : inner_border.right;
    475     inner_rect->y = rect->y + inner_border.top + YTHICKNESS(style) +
    476                     focus_width + focus_pad;
    477     inner_rect->width = MAX(1, rect->width - inner_border.left -
    478        inner_border.right - (XTHICKNESS(style) + focus_pad + focus_width) * 2);
    479     inner_rect->height = MAX(1, rect->height - inner_border.top -
    480        inner_border.bottom - (YTHICKNESS(style) + focus_pad + focus_width) * 2);
    481 
    482     return MOZ_GTK_SUCCESS;
    483 }
    484 
    485 
    486 static gint
    487 calculate_arrow_rect(GtkWidget* arrow, GdkRectangle* rect,
    488                      GdkRectangle* arrow_rect, GtkTextDirection direction)
    489 {
    490     /* defined in gtkarrow.c */
    491     gfloat arrow_scaling = 0.7;
    492     gfloat xalign, xpad;
    493     gint extent;
    494     GtkMisc* misc = GTK_MISC(arrow);
    495     gfloat misc_xalign, misc_yalign;
    496     gint misc_xpad, misc_ypad;
    497 
    498     if (have_arrow_scaling)
    499         gtk_widget_style_get(arrow, "arrow_scaling", &arrow_scaling, NULL);
    500 
    501     gtk_misc_get_padding(misc, &misc_xpad, &misc_ypad);
    502     gtk_misc_get_alignment(misc, &misc_xalign, &misc_yalign);
    503 
    504     extent = MIN((rect->width - misc_xpad * 2),
    505                  (rect->height - misc_ypad * 2)) * arrow_scaling;
    506 
    507     xalign = direction == GTK_TEXT_DIR_LTR ? misc_xalign : 1.0 - misc_xalign;
    508     xpad = misc_xpad + (rect->width - extent) * xalign;
    509 
    510     arrow_rect->x = direction == GTK_TEXT_DIR_LTR ?
    511                         floor(rect->x + xpad) : ceil(rect->x + xpad);
    512     arrow_rect->y = floor(rect->y + misc_ypad +
    513                           ((rect->height - extent) * misc_yalign));
    514 
    515     arrow_rect->width = arrow_rect->height = extent;
    516196
    517197    return MOZ_GTK_SUCCESS;
     
    758438}
    759439
    760 static gint
    761 moz_gtk_combo_box_paint(GdkDrawable* drawable, GdkRectangle* rect,
    762                         GdkRectangle* cliprect, GtkWidgetState* state,
    763                         gboolean ishtml, GtkTextDirection direction)
    764 {
    765     GdkRectangle arrow_rect, real_arrow_rect;
    766     gint /* arrow_size, */ separator_width;
    767     gboolean wide_separators;
    768     GtkStateType state_type = ConvertGtkState(state);
    769     GtkShadowType shadow_type = state->active ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
    770     GtkStyle* style;
    771     GtkRequisition arrow_req;
    772 
    773     ensure_combo_box_widgets();
    774 
    775     /* Also sets the direction on gParts->comboBoxButtonWidget, which is then
    776      * inherited by the separator and arrow */
    777     moz_gtk_button_paint(drawable, rect, cliprect, state, GTK_RELIEF_NORMAL,
    778                          gParts->comboBoxButtonWidget, direction);
    779 
    780     calculate_button_inner_rect(gParts->comboBoxButtonWidget,
    781                                 rect, &arrow_rect, direction, ishtml);
    782     /* Now arrow_rect contains the inner rect ; we want to correct the width
    783      * to what the arrow needs (see gtk_combo_box_size_allocate) */
    784     gtk_widget_size_request(gParts->comboBoxArrowWidget, &arrow_req);
    785     if (direction == GTK_TEXT_DIR_LTR)
    786         arrow_rect.x += arrow_rect.width - arrow_req.width;
    787     arrow_rect.width = arrow_req.width;
    788 
    789     calculate_arrow_rect(gParts->comboBoxArrowWidget,
    790                          &arrow_rect, &real_arrow_rect, direction);
    791 
    792     style = gtk_widget_get_style(gParts->comboBoxArrowWidget);
    793     TSOffsetStyleGCs(style, rect->x, rect->y);
    794 
    795     gtk_widget_size_allocate(gParts->comboBoxWidget, rect);
    796 
    797     gtk_paint_arrow(style, drawable, state_type, shadow_type, cliprect,
    798                     gParts->comboBoxArrowWidget, "arrow",  GTK_ARROW_DOWN, TRUE,
    799                     real_arrow_rect.x, real_arrow_rect.y,
    800                     real_arrow_rect.width, real_arrow_rect.height);
    801 
    802 
    803     /* If there is no separator in the theme, there's nothing left to do. */
    804     if (!gParts->comboBoxSeparatorWidget)
    805         return MOZ_GTK_SUCCESS;
    806 
    807     style = gtk_widget_get_style(gParts->comboBoxSeparatorWidget);
    808     TSOffsetStyleGCs(style, rect->x, rect->y);
    809 
    810     gtk_widget_style_get(gParts->comboBoxSeparatorWidget,
    811                          "wide-separators", &wide_separators,
    812                          "separator-width", &separator_width,
    813                          NULL);
    814 
    815     if (wide_separators) {
    816         if (direction == GTK_TEXT_DIR_LTR)
    817             arrow_rect.x -= separator_width;
    818         else
    819             arrow_rect.x += arrow_rect.width;
    820 
    821         gtk_paint_box(style, drawable,
    822                       GTK_STATE_NORMAL, GTK_SHADOW_ETCHED_OUT,
    823                       cliprect, gParts->comboBoxSeparatorWidget, "vseparator",
    824                       arrow_rect.x, arrow_rect.y,
    825                       separator_width, arrow_rect.height);
    826     } else {
    827         if (direction == GTK_TEXT_DIR_LTR)
    828             arrow_rect.x -= XTHICKNESS(style);
    829         else
    830             arrow_rect.x += arrow_rect.width;
    831 
    832         gtk_paint_vline(style, drawable, GTK_STATE_NORMAL, cliprect,
    833                         gParts->comboBoxSeparatorWidget, "vseparator",
    834                         arrow_rect.y, arrow_rect.y + arrow_rect.height,
    835                         arrow_rect.x);
    836     }
    837 
    838     return MOZ_GTK_SUCCESS;
    839 }
    840 
    841440gint
    842441moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
     
    848447
    849448    switch (widget) {
    850     case MOZ_GTK_BUTTON:
    851         {
    852             GtkBorder inner_border;
    853             gboolean interior_focus;
    854             gint focus_width, focus_pad;
    855             GtkStyle *style;
    856 
    857             ensure_button_widget();
    858             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gParts->buttonWidget));
    859 
    860             /* Don't add this padding in HTML, otherwise the buttons will
    861                become too big and stuff the layout. */
    862             if (!inhtml) {
    863                 moz_gtk_widget_get_focus(gParts->buttonWidget, &interior_focus, &focus_width, &focus_pad);
    864                 moz_gtk_button_get_inner_border(gParts->buttonWidget, &inner_border);
    865                 *left += focus_width + focus_pad + inner_border.left;
    866                 *right += focus_width + focus_pad + inner_border.right;
    867                 *top += focus_width + focus_pad + inner_border.top;
    868                 *bottom += focus_width + focus_pad + inner_border.bottom;
    869             }
    870 
    871             style = gtk_widget_get_style(gParts->buttonWidget);
    872             *left += style->xthickness;
    873             *right += style->xthickness;
    874             *top += style->ythickness;
    875             *bottom += style->ythickness;
    876             return MOZ_GTK_SUCCESS;
    877         }
    878     case MOZ_GTK_DROPDOWN:
    879         {
    880             /* We need to account for the arrow on the dropdown, so text
    881              * doesn't come too close to the arrow, or in some cases spill
    882              * into the arrow. */
    883             gboolean ignored_interior_focus, wide_separators;
    884             gint focus_width, focus_pad, separator_width;
    885             GtkRequisition arrow_req;
    886             GtkStyle* style;
    887 
    888             ensure_combo_box_widgets();
    889 
    890             *left = gtk_container_get_border_width(GTK_CONTAINER(gParts->comboBoxButtonWidget));
    891 
    892             if (!inhtml) {
    893                 moz_gtk_widget_get_focus(gParts->comboBoxButtonWidget,
    894                                          &ignored_interior_focus,
    895                                          &focus_width, &focus_pad);
    896                 *left += focus_width + focus_pad;
    897             }
    898 
    899             style = gtk_widget_get_style(gParts->comboBoxButtonWidget);
    900             *top = *left + style->ythickness;
    901             *left += style->xthickness;
    902 
    903             *right = *left; *bottom = *top;
    904 
    905             /* If there is no separator, don't try to count its width. */
    906             separator_width = 0;
    907             if (gParts->comboBoxSeparatorWidget) {
    908                 gtk_widget_style_get(gParts->comboBoxSeparatorWidget,
    909                                      "wide-separators", &wide_separators,
    910                                      "separator-width", &separator_width,
    911                                      NULL);
    912 
    913                 if (!wide_separators)
    914                     separator_width =
    915                         XTHICKNESS(style);
    916             }
    917 
    918             gtk_widget_size_request(gParts->comboBoxArrowWidget, &arrow_req);
    919             if (direction == GTK_TEXT_DIR_RTL)
    920                 *left += separator_width + arrow_req.width;
    921             else
    922                 *right += separator_width + arrow_req.width;
    923 
    924             return MOZ_GTK_SUCCESS;
    925         }
    926449    /* These widgets have no borders, since they are not containers. */
    927450    case MOZ_GTK_SCROLLBAR_BUTTON:
     
    971494{
    972495    switch (widget) {
    973     case MOZ_GTK_BUTTON:
    974         if (state->depressed) {
    975             ensure_toggle_button_widget();
    976             return moz_gtk_button_paint(drawable, rect, cliprect, state,
    977                                         (GtkReliefStyle) flags,
    978                                         gParts->toggleButtonWidget, direction);
    979         }
    980         ensure_button_widget();
    981         return moz_gtk_button_paint(drawable, rect, cliprect, state,
    982                                     (GtkReliefStyle) flags, gParts->buttonWidget,
    983                                     direction);
    984         break;
    985496    case MOZ_GTK_SCROLLBAR_BUTTON:
    986497        return moz_gtk_scrollbar_button_paint(drawable, rect, cliprect, state,
     
    1001512        return moz_gtk_scrolled_window_paint(drawable, rect, cliprect, state);
    1002513        break;
    1003     case MOZ_GTK_DROPDOWN:
    1004         return moz_gtk_combo_box_paint(drawable, rect, cliprect, state,
    1005                                        (gboolean) flags, direction);
    1006         break;
    1007514    default:
    1008515        g_warning("Unknown widget type: %d", widget);
  • trunk/Source/WebCore/platform/gtk/gtkdrawing.h

    r76192 r76388  
    8787    GtkWidget* protoWindow;
    8888    GtkWidget* protoLayout;
    89     GtkWidget* buttonWidget;
    90     GtkWidget* toggleButtonWidget;
    91     GtkWidget* buttonArrowWidget;
    9289    GtkWidget* horizScrollbarWidget;
    9390    GtkWidget* vertScrollbarWidget;
    94     GtkWidget* comboBoxWidget;
    95     GtkWidget* comboBoxButtonWidget;
    96     GtkWidget* comboBoxArrowWidget;
    97     GtkWidget* comboBoxSeparatorWidget;
    98     GtkWidget* comboBoxEntryWidget;
    99     GtkWidget* comboBoxEntryTextareaWidget;
    100     GtkWidget* comboBoxEntryButtonWidget;
    101     GtkWidget* comboBoxEntryArrowWidget;
    10291    GtkWidget* scrolledWindowWidget;
    10392} GtkThemeParts;
     
    134123  /* Paints the background of a scrolled window */
    135124  MOZ_GTK_SCROLLED_WINDOW,
    136   /* Paints a GtkOptionMenu. */
    137   MOZ_GTK_DROPDOWN,
    138125} GtkThemeWidgetType;
    139126
     
    209196                               gint* right, gint* bottom, GtkTextDirection direction,
    210197                               gboolean inhtml);
    211 
    212 /** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
    213  * widget:             [IN]  the widget to get the focus metrics for   
    214  * interior_focus:     [OUT] whether the focus is drawn around the
    215  *                           label (TRUE) or around the whole container (FALSE)
    216  * focus_width:        [OUT] the width of the focus line
    217  * focus_pad:          [OUT] the padding between the focus line and children
    218  *
    219  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
    220  */
    221 gint
    222 moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
    223                          gint* focus_width, gint* focus_pad);
    224 
    225198/**
    226199 * Get the desired metrics for a GtkScrollbar
Note: See TracChangeset for help on using the changeset viewer.