diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/content/child/webthemeengine_impl_mac.cc | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/content/child/webthemeengine_impl_mac.cc')
-rw-r--r-- | chromium/content/child/webthemeengine_impl_mac.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/chromium/content/child/webthemeengine_impl_mac.cc b/chromium/content/child/webthemeengine_impl_mac.cc index dbd8f0bda68..f8aa72dbe3c 100644 --- a/chromium/content/child/webthemeengine_impl_mac.cc +++ b/chromium/content/child/webthemeengine_impl_mac.cc @@ -18,4 +18,65 @@ void WebThemeEngineMac::SetForcedColors( forced_colors_ = forced_colors; } +void WebThemeEngineMac::Paint(cc::PaintCanvas* canvas, + WebThemeEngine::Part part, + WebThemeEngine::State state, + const blink::WebRect& rect, + const WebThemeEngine::ExtraParams* extra_params, + blink::WebColorScheme color_scheme) { + if (IsScrollbarPart(part)) { + PaintMacScrollBarParts(canvas, part, state, rect, extra_params, + color_scheme); + return; + } + + WebThemeEngineDefault::Paint(canvas, part, state, rect, extra_params, + color_scheme); +} + +bool WebThemeEngineMac::IsScrollbarPart(WebThemeEngine::Part part) { + switch (part) { + case WebThemeEngine::kPartScrollbarHorizontalTrack: + case WebThemeEngine::kPartScrollbarVerticalTrack: + case WebThemeEngine::kPartScrollbarHorizontalThumb: + case WebThemeEngine::kPartScrollbarVerticalThumb: + case WebThemeEngine::kPartScrollbarCorner: + return true; + default: + return false; + } +} + +void WebThemeEngineMac::PaintMacScrollBarParts( + cc::PaintCanvas* canvas, + WebThemeEngine::Part part, + WebThemeEngine::State state, + const blink::WebRect& rect, + const WebThemeEngine::ExtraParams* extra_params, + blink::WebColorScheme color_scheme) { + ui::NativeTheme::ExtraParams native_theme_extra_params; + native_theme_extra_params.scrollbar_extra.is_hovering = + extra_params->scrollbar_extra.is_hovering; + native_theme_extra_params.scrollbar_extra.is_overlay = + extra_params->scrollbar_extra.is_overlay; + switch (extra_params->scrollbar_extra.orientation) { + case WebThemeEngine::kVerticalOnRight: + native_theme_extra_params.scrollbar_extra.orientation = + ui::NativeTheme::ScrollbarOrientation::kVerticalOnRight; + break; + case WebThemeEngine::kVerticalOnLeft: + native_theme_extra_params.scrollbar_extra.orientation = + ui::NativeTheme::ScrollbarOrientation::kVerticalOnLeft; + break; + case WebThemeEngine::kHorizontal: + native_theme_extra_params.scrollbar_extra.orientation = + ui::NativeTheme::ScrollbarOrientation::kHorizontal; + break; + } + + ui::NativeTheme::GetInstanceForNativeUi()->Paint( + canvas, NativeThemePart(part), NativeThemeState(state), gfx::Rect(rect), + native_theme_extra_params, NativeColorScheme(color_scheme)); +} + } // namespace content |