[webkit-changes] [WebKit/WebKit] 87efd1: Post-NEW_THEME modest RenderTheme refactor

Anne van Kesteren noreply at github.com
Mon Dec 11 12:29:43 PST 2023


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

  Changed paths:
    M Source/WebCore/platform/Theme.cpp
    M Source/WebCore/platform/Theme.h
    M Source/WebCore/platform/adwaita/ThemeAdwaita.cpp
    M Source/WebCore/platform/adwaita/ThemeAdwaita.h
    M Source/WebCore/rendering/RenderTheme.cpp
    M Source/WebCore/rendering/RenderTheme.h
    M Source/WebCore/rendering/RenderThemeAdwaita.cpp
    M Source/WebCore/rendering/RenderThemeIOS.h
    M Source/WebCore/rendering/RenderThemeIOS.mm

  Log Message:
  -----------
  Post-NEW_THEME modest RenderTheme refactor
https://bugs.webkit.org/show_bug.cgi?id=265753

Reviewed by Aditya Keerthi.

This is a modest improvement (as I discovered several methods were not
virtual which made less modest improvements harder) to the painting and
adjust style side of things.

macOS (and iOS for a single control) uses its own paint() method that
sends instructions to the GPU process. iOS (usually) and Adwaita paint
directly (which is preferable), but Adwaita uses an older code path for
this. Make this more apparent by using the USE(THEME_ADWAITA) directive
and adding some FIXMEs to avoid other themes copying that.

There was a similar situation for adjust style, but there macOS and
Adwaita were aligned, but iOS had its own code path. Again make this
more apparent by giving macOS and Adwaita a shared method the
individual adjust style methods can delegate to.

More work remains here, but this should make it easier for anyone
trying to do something new here.

* Source/WebCore/platform/Theme.cpp:
(WebCore::Theme::paint): Deleted.
(WebCore::Theme::inflateControlPaintRect const): Deleted.
* Source/WebCore/platform/Theme.h:
(WebCore::Theme::paint):
(WebCore::Theme::inflateControlPaintRect const):
* Source/WebCore/platform/adwaita/ThemeAdwaita.cpp:
(WebCore::ThemeAdwaita::paint):
* Source/WebCore/platform/adwaita/ThemeAdwaita.h:
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustButtonOrCheckboxOrColorWellOrInnerSpinButtonOrRadioOrSwitchStyle 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::paintColorWell): Deleted.
* Source/WebCore/rendering/RenderTheme.h:
(WebCore::RenderTheme::paintColorWell):
(WebCore::RenderTheme::adjustButtonStyle const): Deleted.
(WebCore::RenderTheme::adjustSwitchStyle const): Deleted.
* Source/WebCore/rendering/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::paintMenuList):
* Source/WebCore/rendering/RenderThemeIOS.h:
* Source/WebCore/rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintColorWell): Deleted.

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




More information about the webkit-changes mailing list