12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright 2018 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "ash/wm/overlay_layout_manager.h"
- #include "ash/wm/window_state.h"
- #include "ash/wm/wm_event.h"
- #include "base/check.h"
- #include "ui/aura/window.h"
- #include "ui/display/display.h"
- #include "ui/display/screen.h"
- using display::Screen;
- namespace ash {
- OverlayLayoutManager::OverlayLayoutManager(aura::Window* overlay_container)
- : overlay_container_(overlay_container) {
- DCHECK(overlay_container_);
- }
- OverlayLayoutManager::~OverlayLayoutManager() = default;
- void OverlayLayoutManager::OnDisplayMetricsChanged(
- const display::Display& display,
- uint32_t changed_metrics) {
- if (display.id() !=
- Screen::GetScreen()->GetDisplayNearestWindow(overlay_container_).id()) {
- // The update wasn't for this container's display.
- return;
- }
- for (aura::Window* child : overlay_container_->children()) {
- WindowState* window_state = WindowState::Get(child);
- if (window_state->IsFullscreen()) {
- const WMEvent event(WM_EVENT_WORKAREA_BOUNDS_CHANGED);
- window_state->OnWMEvent(&event);
- }
- }
- }
- } // namespace ash
|