[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