haikuwebkit/ManualTests/gtk/theme.html

175 lines
6.1 KiB
HTML
Raw Permalink Normal View History

[GTK] Rework the theming code for GTK+ 3.20 https://bugs.webkit.org/show_bug.cgi?id=156333 Reviewed by Michael Catanzaro. .: Add a manual test to check how themed elements are rendered. * ManualTests/gtk/theme.html: Added. Source/WebCore: During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+ 3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where Adwaita uses them like we currently do. This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't ifdef blocks in the functions, and we ensure we don't break previous rendering. * PlatformGTK.cmake: Add new files to compilation. * html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the current buttons state. * platform/gtk/RenderThemeGadget.cpp: Added. (WebCore::RenderThemeGadget::create): (WebCore::createStyleContext): (WebCore::appendElementToPath): (WebCore::RenderThemeGadget::RenderThemeGadget): (WebCore::RenderThemeGadget::~RenderThemeGadget): (WebCore::RenderThemeGadget::marginBox): (WebCore::RenderThemeGadget::borderBox): (WebCore::RenderThemeGadget::paddingBox): (WebCore::RenderThemeGadget::contentsBox): (WebCore::RenderThemeGadget::color): (WebCore::RenderThemeGadget::backgroundColor): (WebCore::RenderThemeGadget::minimumSize): (WebCore::RenderThemeGadget::preferredSize): (WebCore::RenderThemeGadget::render): (WebCore::RenderThemeGadget::renderFocus): (WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): (WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget): (WebCore::RenderThemeTextFieldGadget::minimumSize): (WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget): (WebCore::RenderThemeToggleGadget::render): (WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget): (WebCore::RenderThemeArrowGadget::render): (WebCore::RenderThemeIconGadget::RenderThemeIconGadget): (WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize): (WebCore::RenderThemeIconGadget::render): (WebCore::RenderThemeIconGadget::minimumSize): * platform/gtk/RenderThemeGadget.h: Added. (WebCore::RenderThemeGadget::context): * rendering/RenderTheme.h: (WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the buttons. * rendering/RenderThemeGtk.cpp: (WebCore::themeChangedCallback): Just moved this code to a common place. (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor. (WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20. (WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject. (WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function. (WebCore::setToggleSize): (WebCore::paintToggle): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::popupInternalPaddingBox): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons, so if the text field is for a spin button, we adjust the desired size here. (WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are different, so we check here if this is the entry of a spin button to use the right gadgets. (WebCore::adjustSearchFieldIconStyle): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle): (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): (WebCore::paintSearchFieldIcon): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::adjustSliderThumbSize): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20. (WebCore::RenderThemeGtk::paintProgressBar): (WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons. (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): (WebCore::RenderThemeGtk::paintInnerSpinButton): (WebCore::styleColor): (WebCore::RenderThemeGtk::paintMediaButton): * rendering/RenderThemeGtk.h: Canonical link: https://commits.webkit.org/174552@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-11 10:59:03 +00:00
<html>
<body id="body">
<h1>GTK+ themed elements</h1>
<p>This is a manual tests to check how all elements having a native appearance are rendered by WebKitGTK+.
To test different themes, open this test in MiniBrowser (or any other WebKitGTK+ based browser) passing
GTK_THEME=theme-name[:variant] environment variable.
</p>
<p>Text direction:
<input type="radio" name="direction" id="ltr" checked onchange="if (document.getElementById('ltr').checked) body.setAttribute('dir', 'ltr');"/>Left to right
<input type="radio" name="direction" id="rtl" onchange="if (document.getElementById('rtl').checked) body.setAttribute('dir', 'rtl');"/> Right to left<br/>
[GTK] Rework the theming code for GTK+ 3.20 https://bugs.webkit.org/show_bug.cgi?id=156333 Reviewed by Michael Catanzaro. .: Add a manual test to check how themed elements are rendered. * ManualTests/gtk/theme.html: Added. Source/WebCore: During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+ 3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where Adwaita uses them like we currently do. This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't ifdef blocks in the functions, and we ensure we don't break previous rendering. * PlatformGTK.cmake: Add new files to compilation. * html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the current buttons state. * platform/gtk/RenderThemeGadget.cpp: Added. (WebCore::RenderThemeGadget::create): (WebCore::createStyleContext): (WebCore::appendElementToPath): (WebCore::RenderThemeGadget::RenderThemeGadget): (WebCore::RenderThemeGadget::~RenderThemeGadget): (WebCore::RenderThemeGadget::marginBox): (WebCore::RenderThemeGadget::borderBox): (WebCore::RenderThemeGadget::paddingBox): (WebCore::RenderThemeGadget::contentsBox): (WebCore::RenderThemeGadget::color): (WebCore::RenderThemeGadget::backgroundColor): (WebCore::RenderThemeGadget::minimumSize): (WebCore::RenderThemeGadget::preferredSize): (WebCore::RenderThemeGadget::render): (WebCore::RenderThemeGadget::renderFocus): (WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): (WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget): (WebCore::RenderThemeTextFieldGadget::minimumSize): (WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget): (WebCore::RenderThemeToggleGadget::render): (WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget): (WebCore::RenderThemeArrowGadget::render): (WebCore::RenderThemeIconGadget::RenderThemeIconGadget): (WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize): (WebCore::RenderThemeIconGadget::render): (WebCore::RenderThemeIconGadget::minimumSize): * platform/gtk/RenderThemeGadget.h: Added. (WebCore::RenderThemeGadget::context): * rendering/RenderTheme.h: (WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the buttons. * rendering/RenderThemeGtk.cpp: (WebCore::themeChangedCallback): Just moved this code to a common place. (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor. (WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20. (WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject. (WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function. (WebCore::setToggleSize): (WebCore::paintToggle): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::popupInternalPaddingBox): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons, so if the text field is for a spin button, we adjust the desired size here. (WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are different, so we check here if this is the entry of a spin button to use the right gadgets. (WebCore::adjustSearchFieldIconStyle): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle): (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): (WebCore::paintSearchFieldIcon): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::adjustSliderThumbSize): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20. (WebCore::RenderThemeGtk::paintProgressBar): (WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons. (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): (WebCore::RenderThemeGtk::paintInnerSpinButton): (WebCore::styleColor): (WebCore::RenderThemeGtk::paintMediaButton): * rendering/RenderThemeGtk.h: Canonical link: https://commits.webkit.org/174552@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-11 10:59:03 +00:00
</p>
<h1>Buttons</h1>
<table>
<tr>
<td><button type="button">Button</button></td>
<td><button type="button" disabled>Disabled</button></td>
</tr>
<tr>
<td><input type="radio" name="radio"/>Radio 1</td>
<td><input type="radio" name="radio"/>Radio 2</td>
</tr>
<tr>
<td><input type="radio" name="radio-disabled" disabled/>Disabled</td>
<td><input type="radio" name="radio-disabled" disabled checked/>Checked Disabled</td>
</tr>
<tr>
<td><input type="checkbox" name="check"/>Check</td>
<td><input type="checkbox" name="check-disabled" checked disabled/>Check Disabled</td>
</tr>
</table>
<h1>Combos</h1>
<table>
<tr>
<td><select><option>A</option><option selected>B</option><option>C</option></td>
<td><select><option>Combo option 1</option><option>Combo option 2</option><option>Combo option 3</option></td>
<td><select disabled><option>Disabled option 1</option><option>Disabled option 2</option><option>Disabled option 3</option></td>
[GTK] Rework the theming code for GTK+ 3.20 https://bugs.webkit.org/show_bug.cgi?id=156333 Reviewed by Michael Catanzaro. .: Add a manual test to check how themed elements are rendered. * ManualTests/gtk/theme.html: Added. Source/WebCore: During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+ 3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where Adwaita uses them like we currently do. This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't ifdef blocks in the functions, and we ensure we don't break previous rendering. * PlatformGTK.cmake: Add new files to compilation. * html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the current buttons state. * platform/gtk/RenderThemeGadget.cpp: Added. (WebCore::RenderThemeGadget::create): (WebCore::createStyleContext): (WebCore::appendElementToPath): (WebCore::RenderThemeGadget::RenderThemeGadget): (WebCore::RenderThemeGadget::~RenderThemeGadget): (WebCore::RenderThemeGadget::marginBox): (WebCore::RenderThemeGadget::borderBox): (WebCore::RenderThemeGadget::paddingBox): (WebCore::RenderThemeGadget::contentsBox): (WebCore::RenderThemeGadget::color): (WebCore::RenderThemeGadget::backgroundColor): (WebCore::RenderThemeGadget::minimumSize): (WebCore::RenderThemeGadget::preferredSize): (WebCore::RenderThemeGadget::render): (WebCore::RenderThemeGadget::renderFocus): (WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): (WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget): (WebCore::RenderThemeTextFieldGadget::minimumSize): (WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget): (WebCore::RenderThemeToggleGadget::render): (WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget): (WebCore::RenderThemeArrowGadget::render): (WebCore::RenderThemeIconGadget::RenderThemeIconGadget): (WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize): (WebCore::RenderThemeIconGadget::render): (WebCore::RenderThemeIconGadget::minimumSize): * platform/gtk/RenderThemeGadget.h: Added. (WebCore::RenderThemeGadget::context): * rendering/RenderTheme.h: (WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the buttons. * rendering/RenderThemeGtk.cpp: (WebCore::themeChangedCallback): Just moved this code to a common place. (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor. (WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20. (WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject. (WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function. (WebCore::setToggleSize): (WebCore::paintToggle): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::popupInternalPaddingBox): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons, so if the text field is for a spin button, we adjust the desired size here. (WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are different, so we check here if this is the entry of a spin button to use the right gadgets. (WebCore::adjustSearchFieldIconStyle): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle): (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): (WebCore::paintSearchFieldIcon): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::adjustSliderThumbSize): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20. (WebCore::RenderThemeGtk::paintProgressBar): (WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons. (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): (WebCore::RenderThemeGtk::paintInnerSpinButton): (WebCore::styleColor): (WebCore::RenderThemeGtk::paintMediaButton): * rendering/RenderThemeGtk.h: Canonical link: https://commits.webkit.org/174552@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-11 10:59:03 +00:00
</tr>
</table>
<h1>Text areas</h1>
<table>
<tr>
<td><input value="Entry"></td>
<td><input value="Disabled" disabled></td>
<td><input value="Read only" readonly></td>
</tr>
<tr>
<td><input type="password" value="Password"></td>
<td><input type="password" value="Disabled" disabled></td>
<td><input type="password" value="Read only" readonly></td>
</tr>
<tr>
<td><textarea rows="1">Single row text area</textarea></td>
<td><textarea rows="1" disabled>Disabled</textarea></td>
<td><textarea rows="1" readonly>Read only</textarea></td>
</tr>
<tr>
<td><textarea rows="5">No scrollbars initially</textarea></td>
<td><textarea rows="5">With vertical scrollbar
</textarea></td>
<td><textarea rows="5" style='white-space: nowrap'>With horizontal scrollbars..................</textarea></td>
</tr>
</table>
<h1>Search field</h1>
<table>
<tr>
<td><input type="search" results value="Small" style="font-size: 8px;"></td>
<td><input type="search" results value="Big" style="font-size: 32px;"></td>
</tr>
</table>
<h1>Spin buttons</h1>
<table>
<tr>
<td><input type="number" value="Small" style="font-size: 8px;"></td>
<td><input type="number" value="Big" style="font-size: 32px;"></td>
</tr>
</table>
<h1>Option lists</h1>
<table>
<tr>
<td>
<select size="5">
<option>Option 1</option><option>Option 2</option><option>Option 3</option><option selected>Option 4</option><option>Option 5</option>
</select>
</td>
<td>
<select size="3">
<option>Option 1</option><option>Option 2</option><option>Option 3</option><option selected>Option 4</option><option>Option 5</option>
</select>
</td>
<td>
<select size="3">
<option disabled>Option 1</option><option disabled>Option 2</option><option>Option 3</option><option selected>Option 4</option><option>Option 5</option>
</select>
</td>
<td>
<select size="3" disabled>
<option>Option 1</option><option>Option 2</option><option>Option 3</option><option selected>Option 4</option><option>Option 5</option>
</select>
</td>
</tr>
</table>
<h1>Progress bars</h1>
<table>
<tr>
<td><progress value="50" max="100"></progress></td>
<td><progress indeterminate="true"></progress></td>
<td><progress value="50" max="100" style="width: 150px; height: 16px;"></progress></td>
<td><progress indeterminate="true" style="width: 150px; height: 16px;"></progress></td>
</tr>
</table>
<h1>Range selector</h1>
<table>
<tr>
<td><input type="range" value="50" max="100"></input></td>
<td><input type="range" value="50" max="100" style="-webkit-appearance: slider-vertical"></input></td>
<td><input type="range" value="50" max="100" disabled></input></td>
<td><input type="range" value="50" max="100" style="-webkit-appearance: slider-vertical" disabled></input></td>
</tr>
<tr>
<td><input type="range" min="0" max="100" step="25" list="steplist"></input></td>
<td><input type="range" min="0" max="100" step="25" list="steplist" style="-webkit-appearance: slider-vertical"></input></td>
</tr>
[GTK] Rework the theming code for GTK+ 3.20 https://bugs.webkit.org/show_bug.cgi?id=156333 Reviewed by Michael Catanzaro. .: Add a manual test to check how themed elements are rendered. * ManualTests/gtk/theme.html: Added. Source/WebCore: During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+ 3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where Adwaita uses them like we currently do. This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't ifdef blocks in the functions, and we ensure we don't break previous rendering. * PlatformGTK.cmake: Add new files to compilation. * html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the current buttons state. * platform/gtk/RenderThemeGadget.cpp: Added. (WebCore::RenderThemeGadget::create): (WebCore::createStyleContext): (WebCore::appendElementToPath): (WebCore::RenderThemeGadget::RenderThemeGadget): (WebCore::RenderThemeGadget::~RenderThemeGadget): (WebCore::RenderThemeGadget::marginBox): (WebCore::RenderThemeGadget::borderBox): (WebCore::RenderThemeGadget::paddingBox): (WebCore::RenderThemeGadget::contentsBox): (WebCore::RenderThemeGadget::color): (WebCore::RenderThemeGadget::backgroundColor): (WebCore::RenderThemeGadget::minimumSize): (WebCore::RenderThemeGadget::preferredSize): (WebCore::RenderThemeGadget::render): (WebCore::RenderThemeGadget::renderFocus): (WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): (WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget): (WebCore::RenderThemeTextFieldGadget::minimumSize): (WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget): (WebCore::RenderThemeToggleGadget::render): (WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget): (WebCore::RenderThemeArrowGadget::render): (WebCore::RenderThemeIconGadget::RenderThemeIconGadget): (WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize): (WebCore::RenderThemeIconGadget::render): (WebCore::RenderThemeIconGadget::minimumSize): * platform/gtk/RenderThemeGadget.h: Added. (WebCore::RenderThemeGadget::context): * rendering/RenderTheme.h: (WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the buttons. * rendering/RenderThemeGtk.cpp: (WebCore::themeChangedCallback): Just moved this code to a common place. (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor. (WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20. (WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject. (WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function. (WebCore::setToggleSize): (WebCore::paintToggle): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::popupInternalPaddingBox): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons, so if the text field is for a spin button, we adjust the desired size here. (WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are different, so we check here if this is the entry of a spin button to use the right gadgets. (WebCore::adjustSearchFieldIconStyle): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle): (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): (WebCore::paintSearchFieldIcon): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::adjustSliderThumbSize): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20. (WebCore::RenderThemeGtk::paintProgressBar): (WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons. (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): (WebCore::RenderThemeGtk::paintInnerSpinButton): (WebCore::styleColor): (WebCore::RenderThemeGtk::paintMediaButton): * rendering/RenderThemeGtk.h: Canonical link: https://commits.webkit.org/174552@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-11 10:59:03 +00:00
</table>
<datalist id="steplist">
<option>0</option>
<option>25</option>
<option>50</option>
<option>75</option>
<option>100</option>
</datalist>
[GTK] Rework the theming code for GTK+ 3.20 https://bugs.webkit.org/show_bug.cgi?id=156333 Reviewed by Michael Catanzaro. .: Add a manual test to check how themed elements are rendered. * ManualTests/gtk/theme.html: Added. Source/WebCore: During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+ 3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where Adwaita uses them like we currently do. This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't ifdef blocks in the functions, and we ensure we don't break previous rendering. * PlatformGTK.cmake: Add new files to compilation. * html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the current buttons state. * platform/gtk/RenderThemeGadget.cpp: Added. (WebCore::RenderThemeGadget::create): (WebCore::createStyleContext): (WebCore::appendElementToPath): (WebCore::RenderThemeGadget::RenderThemeGadget): (WebCore::RenderThemeGadget::~RenderThemeGadget): (WebCore::RenderThemeGadget::marginBox): (WebCore::RenderThemeGadget::borderBox): (WebCore::RenderThemeGadget::paddingBox): (WebCore::RenderThemeGadget::contentsBox): (WebCore::RenderThemeGadget::color): (WebCore::RenderThemeGadget::backgroundColor): (WebCore::RenderThemeGadget::minimumSize): (WebCore::RenderThemeGadget::preferredSize): (WebCore::RenderThemeGadget::render): (WebCore::RenderThemeGadget::renderFocus): (WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): (WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget): (WebCore::RenderThemeTextFieldGadget::minimumSize): (WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget): (WebCore::RenderThemeToggleGadget::render): (WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget): (WebCore::RenderThemeArrowGadget::render): (WebCore::RenderThemeIconGadget::RenderThemeIconGadget): (WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize): (WebCore::RenderThemeIconGadget::render): (WebCore::RenderThemeIconGadget::minimumSize): * platform/gtk/RenderThemeGadget.h: Added. (WebCore::RenderThemeGadget::context): * rendering/RenderTheme.h: (WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the buttons. * rendering/RenderThemeGtk.cpp: (WebCore::themeChangedCallback): Just moved this code to a common place. (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor. (WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20. (WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject. (WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function. (WebCore::setToggleSize): (WebCore::paintToggle): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::popupInternalPaddingBox): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons, so if the text field is for a spin button, we adjust the desired size here. (WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are different, so we check here if this is the entry of a spin button to use the right gadgets. (WebCore::adjustSearchFieldIconStyle): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle): (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): (WebCore::paintSearchFieldIcon): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::adjustSliderThumbSize): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20. (WebCore::RenderThemeGtk::paintProgressBar): (WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons. (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): (WebCore::RenderThemeGtk::paintInnerSpinButton): (WebCore::styleColor): (WebCore::RenderThemeGtk::paintMediaButton): * rendering/RenderThemeGtk.h: Canonical link: https://commits.webkit.org/174552@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-11 10:59:03 +00:00
<h1>Iframe scrollbars</h1>
<iframe width="200" height="100" scrolling="yes" src="data:text/html,
<html>
<body>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</body>
</html>">
</iframe>
[GTK] Stop using gtk foreign drawing API to style form controls https://bugs.webkit.org/show_bug.cgi?id=208129 Reviewed by Adrian Perez de Castro. .: Add a test case for datalist element. * ManualTests/gtk/theme.html: Source/WebCore: It causes layout issues in some websites, it doesn't really work with all GTK themes and it won't be possible with GTK4 because foreign drawing APIs have been removed. Instead, we can use the new custom style used by WPE port, which is based on adwaita, but simplified to avoid the huge minimum control sizes, the usage of gradients and transparencies, etc. We can still use the GTK API to get the selection colors, to keep some consistency with the actual GTK theme, but that won't be possible with GTK4 either. This also means we won't be rendering directly to the cairo context anymore (which was required by GTK foreign drawing), so we can use things like threaded rendering in the GTK port now. This patch renames ScrollbarThemeWPE, RenderThemeWPE and ThemeWPE as ScrollbarThemeAdwaita, RenderThemeAdwaita and ThemeAdwaita and adds ThemeGtk. GTK media controls CSS and JavaScript files have been removed in favor of using the adwaita ones. * Modules/mediacontrols/mediaControlsGtk.js: Removed. * PlatformGTK.cmake: * PlatformWPE.cmake: * SourcesGTK.txt: * SourcesWPE.txt: * css/mediaControlsGtk.css: Removed. * platform/adwaita/ScrollbarThemeAdwaita.cpp: Renamed from Source/WebCore/platform/wpe/ScrollbarThemeWPE.cpp. (WebCore::ScrollbarThemeAdwaita::usesOverlayScrollbars const): (WebCore::ScrollbarThemeAdwaita::scrollbarThickness): (WebCore::ScrollbarThemeAdwaita::minimumThumbLength): (WebCore::ScrollbarThemeAdwaita::hasButtons): (WebCore::ScrollbarThemeAdwaita::hasThumb): (WebCore::ScrollbarThemeAdwaita::backButtonRect): (WebCore::ScrollbarThemeAdwaita::forwardButtonRect): (WebCore::ScrollbarThemeAdwaita::trackRect): (WebCore::ScrollbarThemeAdwaita::paint): (WebCore::ScrollbarThemeAdwaita::handleMousePressEvent): (WebCore::ScrollbarTheme::nativeTheme): * platform/adwaita/ScrollbarThemeAdwaita.h: Copied from Source/WebCore/platform/wpe/ScrollbarThemeWPE.h. * platform/adwaita/ThemeAdwaita.cpp: Renamed from Source/WebCore/platform/wpe/ThemeWPE.cpp. (WebCore::Theme::singleton): (WebCore::ThemeAdwaita::activeSelectionForegroundColor const): (WebCore::ThemeAdwaita::activeSelectionBackgroundColor const): (WebCore::ThemeAdwaita::inactiveSelectionForegroundColor const): (WebCore::ThemeAdwaita::inactiveSelectionBackgroundColor const): (WebCore::ThemeAdwaita::focusColor): (WebCore::ThemeAdwaita::paintFocus): (WebCore::ThemeAdwaita::paintArrow): (WebCore::ThemeAdwaita::controlSize const): (WebCore::ThemeAdwaita::paint): (WebCore::ThemeAdwaita::paintCheckbox): (WebCore::ThemeAdwaita::paintRadio): (WebCore::ThemeAdwaita::paintButton): (WebCore::ThemeAdwaita::paintSpinButton): * platform/adwaita/ThemeAdwaita.h: Renamed from Source/WebCore/platform/wpe/ThemeWPE.h. (WebCore::ThemeAdwaita::platformColorsDidChange): * platform/graphics/cairo/CairoOperations.cpp: (WebCore::Cairo::drawFocusRing): * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::drawFocusRing): * platform/gtk/RenderThemeGadget.cpp: Removed. * platform/gtk/RenderThemeGadget.h: Removed. * platform/gtk/RenderThemeWidget.cpp: Removed. * platform/gtk/RenderThemeWidget.h: Removed. * platform/gtk/ScrollbarThemeGtk.cpp: Removed. * platform/gtk/ScrollbarThemeGtk.h: Removed. * platform/gtk/ThemeGtk.cpp: Added. (WebCore::Theme::singleton): (WebCore::ThemeGtk::ensurePlatformColors const): (WebCore::ThemeGtk::platformColorsDidChange): (WebCore::ThemeGtk::activeSelectionForegroundColor const): (WebCore::ThemeGtk::activeSelectionBackgroundColor const): (WebCore::ThemeGtk::inactiveSelectionForegroundColor const): (WebCore::ThemeGtk::inactiveSelectionBackgroundColor const): * platform/gtk/ThemeGtk.h: Renamed from Source/WebCore/platform/wpe/ScrollbarThemeWPE.h. * rendering/RenderThemeAdwaita.cpp: Renamed from Source/WebCore/platform/wpe/RenderThemeWPE.cpp. (WebCore::RenderTheme::singleton): (WebCore::RenderThemeAdwaita::supportsFocusRing const): (WebCore::RenderThemeAdwaita::shouldHaveCapsLockIndicator const): (WebCore::RenderThemeAdwaita::platformActiveSelectionBackgroundColor const): (WebCore::RenderThemeAdwaita::platformInactiveSelectionBackgroundColor const): (WebCore::RenderThemeAdwaita::platformActiveSelectionForegroundColor const): (WebCore::RenderThemeAdwaita::platformInactiveSelectionForegroundColor const): (WebCore::RenderThemeAdwaita::platformActiveListBoxSelectionBackgroundColor const): (WebCore::RenderThemeAdwaita::platformInactiveListBoxSelectionBackgroundColor const): (WebCore::RenderThemeAdwaita::platformActiveListBoxSelectionForegroundColor const): (WebCore::RenderThemeAdwaita::platformInactiveListBoxSelectionForegroundColor const): (WebCore::RenderThemeAdwaita::platformFocusRingColor const): (WebCore::RenderThemeAdwaita::platformColorsDidChange): (WebCore::RenderThemeAdwaita::extraDefaultStyleSheet): (WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet): (WebCore::RenderThemeAdwaita::mediaControlsScript): (WebCore::RenderThemeAdwaita::paintTextField): (WebCore::RenderThemeAdwaita::paintTextArea): (WebCore::RenderThemeAdwaita::paintSearchField): (WebCore::RenderThemeAdwaita::popupInternalPaddingBox const): (WebCore::RenderThemeAdwaita::paintMenuList): (WebCore::RenderThemeAdwaita::paintMenuListButtonDecorations): (WebCore::RenderThemeAdwaita::animationRepeatIntervalForProgressBar const): (WebCore::RenderThemeAdwaita::animationDurationForProgressBar const): (WebCore::RenderThemeAdwaita::progressBarRectForBounds const): (WebCore::RenderThemeAdwaita::paintProgressBar): (WebCore::RenderThemeAdwaita::paintSliderTrack): (WebCore::RenderThemeAdwaita::adjustSliderThumbSize const): (WebCore::RenderThemeAdwaita::paintSliderThumb): (WebCore::RenderThemeAdwaita::paintMediaSliderTrack): (WebCore::RenderThemeAdwaita::paintMediaVolumeSliderTrack): (WebCore::RenderThemeAdwaita::sliderTickSize const): (WebCore::RenderThemeAdwaita::sliderTickOffsetFromTrackCenter const): (WebCore::RenderThemeAdwaita::adjustListButtonStyle const): * rendering/RenderThemeAdwaita.h: Renamed from Source/WebCore/platform/wpe/RenderThemeWPE.h. * rendering/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::updateCachedSystemFontDescription const): (WebCore::RenderThemeGtk::caretBlinkInterval const): * rendering/RenderThemeGtk.h: Source/WebKit: * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::themeDidChange): Notify RenderTheme about the theme change to clear the colors cache. Source/WTF: Enable USE_NEW_THEME for the GTK port. * wtf/PlatformUse.h: Canonical link: https://commits.webkit.org/221120@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257299 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-02-25 09:55:52 +00:00
<h1>Datalist</h1>
<input list="ports" name="port">
<datalist id="ports">
<option value="WebKitGTK">
<option value="WPEWebKit">
<option value="PlayStation">
<option value="macOS">
<option value="iOS">
</datalist>
[GTK] Rework the theming code for GTK+ 3.20 https://bugs.webkit.org/show_bug.cgi?id=156333 Reviewed by Michael Catanzaro. .: Add a manual test to check how themed elements are rendered. * ManualTests/gtk/theme.html: Added. Source/WebCore: During the 3.19 GTK+ release cycle, the GTK+ css system was reworked, making themes and programs rendering themed widgets, incompatible with the new system. We were trying to fix our rendering every time GTK+ broke something, but we were just changing whatever it was needed to make our rendering look like current GTK+ with the default theme Adwaita. This means that our rendering will be broken for other themes or that changes in Adwaita can break our rendering. This solution was good enough to ensure WebKitGTK+ 2.12 looked good with GTK+ 3.20, but it doesn't work in the long term. We need to ensure that our theming code honors the new GTK+ CSS properties (max-width, min-width, margin, padding, border, ...) in all the cases, not only the cases where Adwaita uses them like we currently do. This patch splits all rendering methods to keep the current code for previous GTK+ versions and adds new code for GTK+ >= 3.20 using the new RenderThemeGadget classes. This makes the code easier to read, since there aren't ifdef blocks in the functions, and we ensure we don't break previous rendering. * PlatformGTK.cmake: Add new files to compilation. * html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Check the button layout used by the theme to decide the current buttons state. * platform/gtk/RenderThemeGadget.cpp: Added. (WebCore::RenderThemeGadget::create): (WebCore::createStyleContext): (WebCore::appendElementToPath): (WebCore::RenderThemeGadget::RenderThemeGadget): (WebCore::RenderThemeGadget::~RenderThemeGadget): (WebCore::RenderThemeGadget::marginBox): (WebCore::RenderThemeGadget::borderBox): (WebCore::RenderThemeGadget::paddingBox): (WebCore::RenderThemeGadget::contentsBox): (WebCore::RenderThemeGadget::color): (WebCore::RenderThemeGadget::backgroundColor): (WebCore::RenderThemeGadget::minimumSize): (WebCore::RenderThemeGadget::preferredSize): (WebCore::RenderThemeGadget::render): (WebCore::RenderThemeGadget::renderFocus): (WebCore::RenderThemeBoxGadget::RenderThemeBoxGadget): (WebCore::RenderThemeTextFieldGadget::RenderThemeTextFieldGadget): (WebCore::RenderThemeTextFieldGadget::minimumSize): (WebCore::RenderThemeToggleGadget::RenderThemeToggleGadget): (WebCore::RenderThemeToggleGadget::render): (WebCore::RenderThemeArrowGadget::RenderThemeArrowGadget): (WebCore::RenderThemeArrowGadget::render): (WebCore::RenderThemeIconGadget::RenderThemeIconGadget): (WebCore::RenderThemeIconGadget::gtkIconSizeForPixelSize): (WebCore::RenderThemeIconGadget::render): (WebCore::RenderThemeIconGadget::minimumSize): * platform/gtk/RenderThemeGadget.h: Added. (WebCore::RenderThemeGadget::context): * rendering/RenderTheme.h: (WebCore::RenderTheme::innerSpinButtonLayout): Added this method to allow themes use a different layout for the buttons. * rendering/RenderThemeGtk.cpp: (WebCore::themeChangedCallback): Just moved this code to a common place. (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize the theme monitor in the constructor. (WebCore::createStyleContext): Remove the render parts that are specific to GTK+ 3.20. (WebCore::RenderThemeGtk::adjustRepaintRect): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::themePartStateFlags): Helper function to get the GtkStateFlags of a theme part for a given RenderObject. (WebCore::shrinkToMinimumSizeAndCenterRectangle): Move this common code to a helper function. (WebCore::setToggleSize): (WebCore::paintToggle): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::popupInternalPaddingBox): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::adjustTextFieldStyle): For GTK+ 3.20 we need to ensure a minimum size for spin buttons, so if the text field is for a spin button, we adjust the desired size here. (WebCore::RenderThemeGtk::paintTextField): In GTK+ 3.20 the CSS gadgets used to render spin buttons are different, so we check here if this is the entry of a spin button to use the right gadgets. (WebCore::adjustSearchFieldIconStyle): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle): (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): (WebCore::paintSearchFieldIcon): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecorationPart): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::centerRectVerticallyInParentInputElement): Moved inside a GTK+ < 3.20 ifdef block. (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::adjustSliderThumbSize): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::progressBarRectForBounds): Ensure a minimum size of progress bars in GTK+ 3.20. (WebCore::RenderThemeGtk::paintProgressBar): (WebCore::RenderThemeGtk::innerSpinButtonLayout): Use an horizontal layout for spin buttons. (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): (WebCore::RenderThemeGtk::paintInnerSpinButton): (WebCore::styleColor): (WebCore::RenderThemeGtk::paintMediaButton): * rendering/RenderThemeGtk.h: Canonical link: https://commits.webkit.org/174552@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-04-11 10:59:03 +00:00
<h1>Media controls</h1>
<video controls></video>
</body>
</html>