[webkit-changes] [WebKit/WebKit] efe351: Correct <input type=checkbox switch> iOS focus ring
Anne van Kesteren
noreply at github.com
Wed Dec 13 23:58:30 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: efe35104221863220f85ae234adc7081454180a0
https://github.com/WebKit/WebKit/commit/efe35104221863220f85ae234adc7081454180a0
Author: Anne van Kesteren <annevk at annevk.nl>
Date: 2023-12-13 (Wed, 13 Dec 2023)
Changed paths:
M Source/WebCore/rendering/RenderTheme.cpp
M Source/WebCore/rendering/RenderTheme.h
M Source/WebCore/rendering/RenderThemeIOS.h
M Source/WebCore/rendering/RenderThemeIOS.mm
Log Message:
-----------
Correct <input type=checkbox switch> iOS focus ring
https://bugs.webkit.org/show_bug.cgi?id=266281
rdar://119555352
Reviewed by Aditya Keerthi.
Make RenderThemeIOS build on ControlStyle::State rather than
ControlStates::States. The ControlStates architecture is dated, does
not account for shadow hosts, and should probably be disappeared
entirely. This is an incremental step towards that goal.
Then provide the switch's thumb painting code has access to the system
outline color.
And ensure that by default we don't draw an outline for a switch on
iOS. Web developers can override this by using a non-auto outline-style
value, but that will not draw the outline around the thumb.
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::extractControlStyleStatesForRendererInternal const):
(WebCore::adjustRendererForAppearance):
(WebCore::RenderTheme::extractControlStyleStatesForRenderer const):
(WebCore::RenderTheme::extractControlStyleForRenderer const):
* Source/WebCore/rendering/RenderTheme.h:
* Source/WebCore/rendering/RenderThemeIOS.h:
* Source/WebCore/rendering/RenderThemeIOS.mm:
(WebCore::renderThemePaintSwitchThumb):
(WebCore::renderThemePaintSwitchTrack):
(WebCore::RenderThemeIOS::adjustSwitchStyle const):
(WebCore::RenderThemeIOS::paintSwitchThumb):
(WebCore::RenderThemeIOS::paintSwitchTrack):
(WebCore::RenderThemeIOS::checkboxRadioBorderColor):
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):
(WebCore::RenderThemeIOS::checkboxRadioBackgroundGradient):
(WebCore::RenderThemeIOS::checkboxRadioIndicatorColor):
(WebCore::RenderThemeIOS::paintCheckboxRadioInnerShadow):
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
Canonical link: https://commits.webkit.org/272020@main
More information about the webkit-changes
mailing list