Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: efe35104221863220f85ae234adc7081454180a0
      
https://github.com/WebKit/WebKit/commit/efe35104221863220f85ae234adc7081454180a0
  Author: Anne van Kesteren <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to