[webkit-changes] [WebKit/WebKit] 8cbb6b: Add <input type=checkbox switch> macOS focus ring ...

Anne van Kesteren noreply at github.com
Mon Dec 11 10:06:10 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8cbb6b66a695b63eb9a16a9f955d37c9c391e176
      https://github.com/WebKit/WebKit/commit/8cbb6b66a695b63eb9a16a9f955d37c9c391e176
  Author: Anne van Kesteren <annevk at annevk.nl>
  Date:   2023-12-11 (Mon, 11 Dec 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm
    M Source/WebCore/rendering/RenderTheme.cpp
    M Source/WebCore/rendering/RenderThemeMac.h
    M Source/WebCore/rendering/RenderThemeMac.mm

  Log Message:
  -----------
  Add <input type=checkbox switch> macOS focus ring support
https://bugs.webkit.org/show_bug.cgi?id=266139

Reviewed by Aditya Keerthi.

I discovered that the approach taken in 269869 at main to teach
RenderTheme is[State]() checks about switches was wrong. Rather than
changing individual state checks, it should have modified
extractControlStyleForRenderer() instead. By correcting that here the
correct thing will happen in RenderTheme for isFocused().

As a drive-by fix this removes RenderThemeMac::updateFocusedState()
which does not appear to be used and was confusing me.

* Source/WebCore/platform/graphics/mac/controls/SwitchTrackMac.mm:
(WebCore::SwitchTrackMac::draw):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::extractControlStyleForRenderer const):
(WebCore::RenderTheme::isEnabled const):
(WebCore::RenderTheme::isFocused const):
(WebCore::RenderTheme::isPressed const):
* Source/WebCore/rendering/RenderThemeMac.h:
* Source/WebCore/rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::updateFocusedState): Deleted.

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




More information about the webkit-changes mailing list