Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 24ebb01cef269ea5bfd77c2abc82d56474206a77
      
https://github.com/WebKit/WebKit/commit/24ebb01cef269ea5bfd77c2abc82d56474206a77
  Author: Anne van Kesteren <[email protected]>
  Date:   2023-12-21 (Thu, 21 Dec 2023)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/forms/checkbox-switch-input-computed-style.tentative-expected.txt
    M Source/WebCore/html/CheckboxInputType.cpp
    M Source/WebCore/html/CheckboxInputType.h
    M Source/WebCore/platform/Theme.h
    M Source/WebCore/platform/graphics/mac/controls/SwitchMacUtilities.h
    M Source/WebCore/platform/graphics/mac/controls/SwitchMacUtilities.mm
    M Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm
    M Source/WebCore/platform/mac/ThemeMac.h
    M Source/WebCore/platform/mac/ThemeMac.mm
    M Source/WebCore/rendering/RenderTheme.cpp
    M Source/WebCore/rendering/RenderTheme.h
    M Source/WebCore/rendering/RenderThemeIOS.mm
    M Source/WebCore/rendering/RenderThemeMac.mm

  Log Message:
  -----------
  Add <input type=checkbox switch> macOS vertical rendering
https://bugs.webkit.org/show_bug.cgi?id=266347

Reviewed by Aditya Keerthi.

This adjusts the logic in CheckboxInputType so pointer tracking is
based on the vertical position when the control is rendered
vertically.

It similarly adjusts the macOS drawing logic, with some additional
special casing for the on label which shows when
"Differentiate without color" is enabled.

Rather than continuing to reuse
adjustButtonOrCheckboxOrColorWellOrInnerSpinButtonOrRadioOrSwitchStyle()
we make switch break from that pattern by selectively copying over the
parts that apply to switch. (Spoiler: setting the logical width and
height.)

And finally, but not least, adjust the repaint size calculation.
https://bugs.webkit.org/show_bug.cgi?id=266532 is filed as a follow-up
for this due to an issue with writing-mode:vertical-rl.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/forms/checkbox-switch-input-computed-style.tentative-expected.txt:
* Source/WebCore/html/CheckboxInputType.cpp:
(WebCore::switchPointerTrackingLogicalLeftPosition):
(WebCore::CheckboxInputType::startSwitchPointerTracking):
(WebCore::CheckboxInputType::stopSwitchPointerTracking):
(WebCore::CheckboxInputType::isSwitchPointerTracking const):
(WebCore::CheckboxInputType::updateIsSwitchVisuallyOnFromAbsoluteLocation):
* Source/WebCore/html/CheckboxInputType.h:
* Source/WebCore/platform/Theme.h:
(WebCore::Theme::inflateControlPaintRect const): Deleted.
* Source/WebCore/platform/graphics/mac/controls/SwitchMacUtilities.h:
* Source/WebCore/platform/graphics/mac/controls/SwitchMacUtilities.mm:
(WebCore::SwitchMacUtilities::visualCellSize):
(WebCore::SwitchMacUtilities::visualCellOutsets):
(WebCore::SwitchMacUtilities::rectWithTransposedSize):
(WebCore::SwitchMacUtilities::trackRectForBounds):
(WebCore::SwitchMacUtilities::rotateContextForVerticalWritingMode):
* Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.mm:
(WebCore::SwitchThumbMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm:
(WebCore::trackMaskImage):
(WebCore::trackImage):
(WebCore::SwitchTrackMac::draw):
* Source/WebCore/platform/mac/ThemeMac.h:
* Source/WebCore/platform/mac/ThemeMac.mm:
(WebCore::visualSwitchMargins):
(WebCore::ThemeMac::inflateControlPaintRect const):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustButtonOrCheckboxOrColorWellOrInnerSpinButtonOrRadioStyle
 const):
(WebCore::RenderTheme::adjustCheckboxStyle const):
(WebCore::RenderTheme::adjustRadioStyle const):
(WebCore::RenderTheme::adjustColorWellStyle const):
(WebCore::RenderTheme::adjustButtonStyle const):
(WebCore::RenderTheme::adjustInnerSpinButtonStyle const):
(WebCore::RenderTheme::adjustSwitchStyle const):
(WebCore::RenderTheme::adjustButtonOrCheckboxOrColorWellOrInnerSpinButtonOrRadioOrSwitchStyle
 const): Deleted.
* Source/WebCore/rendering/RenderTheme.h:
* Source/WebCore/rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustSwitchStyle const):
* Source/WebCore/rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustRepaintRect):

Canonical link: https://commits.webkit.org/272405@main


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

Reply via email to