Commit 5a9ac570 authored by Prashant Nevase's avatar Prashant Nevase Committed by Commit Bot

Fix regression in dark mode filter creation.

There is regression caused by creating dark mode filter in
GraphicsContext ctor. This patch creates dark mode filter
once it is accessed first time.

Bug: 1134430, 1134476, 1082339
Change-Id: I97521749167fcd1fb7ddfeb1b2fe7e8a7de8846f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2449829Reviewed-by: default avatarStephen Chenney <schenney@chromium.org>
Commit-Queue: Prashant Nevase <prashant.n@samsung.com>
Cr-Commit-Position: refs/heads/master@{#813730}
parent 4d4ea8bb
...@@ -130,6 +130,7 @@ GraphicsContext::GraphicsContext(PaintController& paint_controller, ...@@ -130,6 +130,7 @@ GraphicsContext::GraphicsContext(PaintController& paint_controller,
disable_destruction_checks_(false), disable_destruction_checks_(false),
#endif #endif
device_scale_factor_(1.0f), device_scale_factor_(1.0f),
dark_mode_filter_(nullptr),
printing_(false), printing_(false),
is_painting_preview_(false), is_painting_preview_(false),
in_drawing_recorder_(false), in_drawing_recorder_(false),
...@@ -138,9 +139,6 @@ GraphicsContext::GraphicsContext(PaintController& paint_controller, ...@@ -138,9 +139,6 @@ GraphicsContext::GraphicsContext(PaintController& paint_controller,
// allocate several here. // allocate several here.
paint_state_stack_.push_back(std::make_unique<GraphicsContextState>()); paint_state_stack_.push_back(std::make_unique<GraphicsContextState>());
paint_state_ = paint_state_stack_.back().get(); paint_state_ = paint_state_stack_.back().get();
dark_mode_filter_ = std::make_unique<DarkModeFilter>();
dark_mode_filter_->UpdateSettings(GetCurrentDarkModeSettings());
} }
GraphicsContext::~GraphicsContext() { GraphicsContext::~GraphicsContext() {
...@@ -154,6 +152,15 @@ GraphicsContext::~GraphicsContext() { ...@@ -154,6 +152,15 @@ GraphicsContext::~GraphicsContext() {
#endif #endif
} }
DarkModeFilter* GraphicsContext::GetDarkModeFilter() {
if (!dark_mode_filter_) {
dark_mode_filter_ = std::make_unique<DarkModeFilter>();
dark_mode_filter_->UpdateSettings(GetCurrentDarkModeSettings());
}
return dark_mode_filter_.get();
}
void GraphicsContext::UpdateDarkModeSettingsForTest( void GraphicsContext::UpdateDarkModeSettingsForTest(
const DarkModeSettings& settings) { const DarkModeSettings& settings) {
GetDarkModeFilter()->UpdateSettings(settings); GetDarkModeFilter()->UpdateSettings(settings);
......
...@@ -88,7 +88,7 @@ class PLATFORM_EXPORT GraphicsContext { ...@@ -88,7 +88,7 @@ class PLATFORM_EXPORT GraphicsContext {
bool IsDarkModeEnabled() const { return is_dark_mode_enabled_; } bool IsDarkModeEnabled() const { return is_dark_mode_enabled_; }
void SetDarkModeEnabled(bool enabled) { is_dark_mode_enabled_ = enabled; } void SetDarkModeEnabled(bool enabled) { is_dark_mode_enabled_ = enabled; }
DarkModeFilter* GetDarkModeFilter() { return dark_mode_filter_.get(); } DarkModeFilter* GetDarkModeFilter();
void UpdateDarkModeSettingsForTest(const DarkModeSettings&); void UpdateDarkModeSettingsForTest(const DarkModeSettings&);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment