[webkit-changes] [WebKit/WebKit] 0a64dd: Initial <input type=checkbox switch> animation sup...

Anne van Kesteren noreply at github.com
Sun Nov 26 05:58:31 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0a64dd54421137c48a57e6e0aab15a99139a8776
      https://github.com/WebKit/WebKit/commit/0a64dd54421137c48a57e6e0aab15a99139a8776
  Author: Anne van Kesteren <annevk at annevk.nl>
  Date:   2023-11-26 (Sun, 26 Nov 2023)

  Changed paths:
    M Source/WebCore/dom/EventDispatcher.cpp
    M Source/WebCore/html/CheckboxInputType.cpp
    M Source/WebCore/html/CheckboxInputType.h
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLInputElement.h
    M Source/WebCore/platform/graphics/controls/SwitchThumbPart.h
    M Source/WebCore/platform/graphics/controls/SwitchTrackPart.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.h
    M Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.mm
    M Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.h
    M Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm
    M Source/WebCore/rendering/RenderTheme.cpp
    M Source/WebCore/rendering/RenderTheme.h
    M Source/WebCore/rendering/RenderThemeMac.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Initial <input type=checkbox switch> animation support
https://bugs.webkit.org/show_bug.cgi?id=265108

Reviewed by Aditya Keerthi.

This adds the infrastructure needed to start the animation, somewhat
based on our <progress> implementation. And also implements the macOS
animation.

Thanks to Aditya, smfr, Tim Horton, Antoine, and Kimmo for much needed
guidance.

* Source/WebCore/dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
* Source/WebCore/html/CheckboxInputType.cpp:
(WebCore::CheckboxInputType::willDispatchClick):
(WebCore::switchCheckedChangeAnimationUpdateInterval):
(WebCore::CheckboxInputType::performSwitchCheckedChangeAnimation):
(WebCore::CheckboxInputType::switchCheckedChangeAnimationProgress const):
(WebCore::CheckboxInputType::switchCheckedChangeAnimationTimerFired):
* Source/WebCore/html/CheckboxInputType.h:
* Source/WebCore/html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::switchCheckedChangeAnimationProgress const):
* Source/WebCore/html/HTMLInputElement.h:
* Source/WebCore/platform/graphics/controls/SwitchThumbPart.h:
* Source/WebCore/platform/graphics/controls/SwitchTrackPart.h:
* Source/WebCore/platform/graphics/mac/controls/SwitchMacUtilities.h:
* Source/WebCore/platform/graphics/mac/controls/SwitchMacUtilities.mm:
(WebCore::SwitchMacUtilities::easeInOut):
* Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.h:
* Source/WebCore/platform/graphics/mac/controls/SwitchThumbMac.mm:
(WebCore::SwitchThumbMac::cellSize const):
(WebCore::SwitchThumbMac::draw):
* Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.h:
* Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm:
(WebCore::trackMaskImage):
(WebCore::trackImage):
(WebCore::SwitchTrackMac::draw):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::updateSwitchThumbPartForRenderer):
(WebCore::updateSwitchTrackPartForRenderer):
(WebCore::RenderTheme::updateControlPartForRenderer const):
* Source/WebCore/rendering/RenderTheme.h:
(WebCore::RenderTheme::switchCheckedChangeAnimationDuration const):
* Source/WebCore/rendering/RenderThemeMac.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ControlPart>::encode):
(IPC::ArgumentCoder<ControlPart>::decode):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

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




More information about the webkit-changes mailing list