Commit b8481704 authored by Christopher Cameron's avatar Christopher Cameron Committed by Commit Bot

ui: Fix add/remove observer for WindowTreeHost

TBR=hubbe

Bug: 746363
Change-Id: I4aa238b281a7bd3cfd85b144109fd01a2de1fac8
Reviewed-on: https://chromium-review.googlesource.com/577721
Commit-Queue: ccameron chromium <ccameron@chromium.org>
Reviewed-by: default avatarccameron chromium <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488051}
parent ed06a0ca
......@@ -41,6 +41,8 @@ const char kWindowTreeHostForAcceleratedWidget[] =
// WindowTreeHost, public:
WindowTreeHost::~WindowTreeHost() {
if (display::Screen::GetScreen())
display::Screen::GetScreen()->RemoveObserver(this);
DCHECK(!compositor_) << "compositor must be destroyed before root window";
if (owned_input_method_) {
delete input_method_;
......@@ -224,7 +226,6 @@ void WindowTreeHost::Hide() {
// WindowTreeHost, protected:
WindowTreeHost::WindowTreeHost() : WindowTreeHost(nullptr) {
display::Screen::GetScreen()->AddObserver(this);
}
WindowTreeHost::WindowTreeHost(std::unique_ptr<WindowPort> window_port)
......@@ -232,7 +233,7 @@ WindowTreeHost::WindowTreeHost(std::unique_ptr<WindowPort> window_port)
last_cursor_(ui::CursorType::kNull),
input_method_(nullptr),
owned_input_method_(false) {
display::Screen::GetScreen()->RemoveObserver(this);
display::Screen::GetScreen()->AddObserver(this);
}
void WindowTreeHost::DestroyCompositor() {
......@@ -350,13 +351,12 @@ void WindowTreeHost::OnDisplayRemoved(const display::Display& old_display) {}
void WindowTreeHost::OnDisplayMetricsChanged(const display::Display& display,
uint32_t metrics) {
display::Screen* screen = display::Screen::GetScreen();
if (display.id() != screen->GetDisplayNearestView(window()).id())
return;
if (metrics & DisplayObserver::DISPLAY_METRIC_COLOR_SPACE) {
if (compositor_)
display::Screen* screen = display::Screen::GetScreen();
if (compositor_ &&
display.id() != screen->GetDisplayNearestView(window()).id()) {
compositor_->SetDisplayColorSpace(display.color_space());
}
}
}
......
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