| Index: services/ui/ws/platform_display_default.cc
|
| diff --git a/services/ui/ws/platform_display_default.cc b/services/ui/ws/platform_display_default.cc
|
| index a126d699c0df820a8eb3ad71a2dd2ebf75ed8794..c69e5d387acd4949be253c59a13b0aed0809f693 100644
|
| --- a/services/ui/ws/platform_display_default.cc
|
| +++ b/services/ui/ws/platform_display_default.cc
|
| @@ -37,11 +37,12 @@ PlatformDisplayDefault::PlatformDisplayDefault(
|
| image_cursors_(new ImageCursors),
|
| #endif
|
| metrics_(metrics),
|
| - widget_(gfx::kNullAcceleratedWidget),
|
| - init_device_scale_factor_(metrics.device_scale_factor) {
|
| + widget_(gfx::kNullAcceleratedWidget) {
|
| + root_window_->AddObserver(this);
|
| }
|
|
|
| PlatformDisplayDefault::~PlatformDisplayDefault() {
|
| + root_window_->RemoveObserver(this);
|
| // Don't notify the delegate from the destructor.
|
| delegate_ = nullptr;
|
|
|
| @@ -257,8 +258,10 @@ void PlatformDisplayDefault::OnAcceleratedWidgetAvailable(
|
| std::move(display_private),
|
| std::move(compositor_frame_sink_client_request));
|
| frame_generator_ = base::MakeUnique<FrameGenerator>(
|
| - root_window_, std::move(display_client_compositor_frame_sink));
|
| - frame_generator_->SetDeviceScaleFactor(init_device_scale_factor_);
|
| + std::move(display_client_compositor_frame_sink));
|
| + frame_generator_->OnWindowVisibilityChanged(root_window_->visible());
|
| + frame_generator_->OnWindowBoundsChanged(root_window_->bounds());
|
| + frame_generator_->SetDeviceScaleFactor(metrics_.device_scale_factor);
|
| }
|
|
|
| void PlatformDisplayDefault::OnAcceleratedWidgetDestroyed() {
|
| @@ -267,5 +270,18 @@ void PlatformDisplayDefault::OnAcceleratedWidgetDestroyed() {
|
|
|
| void PlatformDisplayDefault::OnActivationChanged(bool active) {}
|
|
|
| +void PlatformDisplayDefault::OnWindowBoundsChanged(
|
| + ServerWindow* window,
|
| + const gfx::Rect& old_bounds,
|
| + const gfx::Rect& new_bounds) {
|
| + if (frame_generator_)
|
| + frame_generator_->OnWindowBoundsChanged(new_bounds);
|
| +}
|
| +
|
| +void PlatformDisplayDefault::OnWindowVisibilityChanged(ServerWindow* window) {
|
| + if (frame_generator_)
|
| + frame_generator_->OnWindowVisibilityChanged(window->visible());
|
| +}
|
| +
|
| } // namespace ws
|
| } // namespace ui
|
|
|