| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "athena/wm/window_manager_impl.h" | 5 #include "athena/wm/window_manager_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "athena/screen/public/screen_manager.h" | 9 #include "athena/screen/public/screen_manager.h" |
| 10 #include "athena/util/container_priorities.h" | 10 #include "athena/util/container_priorities.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "ui/gfx/screen.h" | 24 #include "ui/gfx/screen.h" |
| 25 #include "ui/wm/core/shadow_controller.h" | 25 #include "ui/wm/core/shadow_controller.h" |
| 26 #include "ui/wm/core/transient_window_manager.h" | 26 #include "ui/wm/core/transient_window_manager.h" |
| 27 #include "ui/wm/core/window_util.h" | 27 #include "ui/wm/core/window_util.h" |
| 28 #include "ui/wm/core/wm_state.h" | 28 #include "ui/wm/core/wm_state.h" |
| 29 #include "ui/wm/public/activation_client.h" | 29 #include "ui/wm/public/activation_client.h" |
| 30 #include "ui/wm/public/window_types.h" | 30 #include "ui/wm/public/window_types.h" |
| 31 | 31 |
| 32 namespace athena { | 32 namespace athena { |
| 33 namespace { | 33 namespace { |
| 34 class WindowManagerImpl* instance = NULL; | 34 class WindowManagerImpl* instance = nullptr; |
| 35 | 35 |
| 36 void SetWindowState(aura::Window* window, | 36 void SetWindowState(aura::Window* window, |
| 37 const gfx::Rect& bounds, | 37 const gfx::Rect& bounds, |
| 38 const gfx::Transform& transform) { | 38 const gfx::Transform& transform) { |
| 39 window->SetBounds(bounds); | 39 window->SetBounds(bounds); |
| 40 window->SetTransform(transform); | 40 window->SetTransform(transform); |
| 41 } | 41 } |
| 42 | 42 |
| 43 } // namespace | 43 } // namespace |
| 44 | 44 |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 RemoveObserver(split_view_controller_.get()); | 178 RemoveObserver(split_view_controller_.get()); |
| 179 split_view_controller_.reset(); | 179 split_view_controller_.reset(); |
| 180 window_list_provider_.reset(); | 180 window_list_provider_.reset(); |
| 181 if (container_) { | 181 if (container_) { |
| 182 container_->RemoveObserver(this); | 182 container_->RemoveObserver(this); |
| 183 container_->RemovePreTargetHandler(bezel_controller_.get()); | 183 container_->RemovePreTargetHandler(bezel_controller_.get()); |
| 184 } | 184 } |
| 185 // |title_drag_controller_| needs to be reset before |container_|. | 185 // |title_drag_controller_| needs to be reset before |container_|. |
| 186 title_drag_controller_.reset(); | 186 title_drag_controller_.reset(); |
| 187 container_.reset(); | 187 container_.reset(); |
| 188 instance = NULL; | 188 instance = nullptr; |
| 189 } | 189 } |
| 190 | 190 |
| 191 void WindowManagerImpl::ToggleSplitView() { | 191 void WindowManagerImpl::ToggleSplitView() { |
| 192 if (IsOverviewModeActive()) | 192 if (IsOverviewModeActive()) |
| 193 return; | 193 return; |
| 194 | 194 |
| 195 if (split_view_controller_->IsSplitViewModeActive()) { | 195 if (split_view_controller_->IsSplitViewModeActive()) { |
| 196 split_view_controller_->DeactivateSplitMode(); | 196 split_view_controller_->DeactivateSplitMode(); |
| 197 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeExit()); | 197 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnSplitViewModeExit()); |
| 198 // Relayout so that windows are maximzied. | 198 // Relayout so that windows are maximzied. |
| 199 container_->layout_manager()->OnWindowResized(); | 199 container_->layout_manager()->OnWindowResized(); |
| 200 } else if (split_view_controller_->CanActivateSplitViewMode()) { | 200 } else if (split_view_controller_->CanActivateSplitViewMode()) { |
| 201 FOR_EACH_OBSERVER(WindowManagerObserver, | 201 FOR_EACH_OBSERVER(WindowManagerObserver, |
| 202 observers_, | 202 observers_, |
| 203 OnSplitViewModeEnter()); | 203 OnSplitViewModeEnter()); |
| 204 split_view_controller_->ActivateSplitMode(NULL, NULL, NULL); | 204 split_view_controller_->ActivateSplitMode(nullptr, nullptr, nullptr); |
| 205 } | 205 } |
| 206 } | 206 } |
| 207 | 207 |
| 208 void WindowManagerImpl::EnterOverview() { | 208 void WindowManagerImpl::EnterOverview() { |
| 209 if (IsOverviewModeActive()) | 209 if (IsOverviewModeActive()) |
| 210 return; | 210 return; |
| 211 | 211 |
| 212 bezel_controller_->set_left_right_delegate(NULL); | 212 bezel_controller_->set_left_right_delegate(nullptr); |
| 213 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnOverviewModeEnter()); | 213 FOR_EACH_OBSERVER(WindowManagerObserver, observers_, OnOverviewModeEnter()); |
| 214 | 214 |
| 215 // Note: The window_list_provider_ resembles the exact window list of the | 215 // Note: The window_list_provider_ resembles the exact window list of the |
| 216 // container, so no re-stacking is required before showing the OverviewMode. | 216 // container, so no re-stacking is required before showing the OverviewMode. |
| 217 overview_ = WindowOverviewMode::Create( | 217 overview_ = WindowOverviewMode::Create( |
| 218 container_.get(), window_list_provider_.get(), | 218 container_.get(), window_list_provider_.get(), |
| 219 split_view_controller_.get(), this); | 219 split_view_controller_.get(), this); |
| 220 AcceleratorManager::Get()->RegisterAccelerator(kEscAcceleratorData, this); | 220 AcceleratorManager::Get()->RegisterAccelerator(kEscAcceleratorData, this); |
| 221 } | 221 } |
| 222 | 222 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 } | 363 } |
| 364 return true; | 364 return true; |
| 365 } | 365 } |
| 366 | 366 |
| 367 aura::Window* WindowManagerImpl::GetWindowBehind(aura::Window* window) { | 367 aura::Window* WindowManagerImpl::GetWindowBehind(aura::Window* window) { |
| 368 const aura::Window::Windows& windows = window_list_provider_->GetWindowList(); | 368 const aura::Window::Windows& windows = window_list_provider_->GetWindowList(); |
| 369 aura::Window::Windows::const_reverse_iterator iter = | 369 aura::Window::Windows::const_reverse_iterator iter = |
| 370 std::find(windows.rbegin(), windows.rend(), window); | 370 std::find(windows.rbegin(), windows.rend(), window); |
| 371 CHECK(iter != windows.rend()); | 371 CHECK(iter != windows.rend()); |
| 372 ++iter; | 372 ++iter; |
| 373 aura::Window* behind = NULL; | 373 aura::Window* behind = nullptr; |
| 374 if (iter != windows.rend()) | 374 if (iter != windows.rend()) |
| 375 behind = *iter++; | 375 behind = *iter++; |
| 376 | 376 |
| 377 if (split_view_controller_->IsSplitViewModeActive()) { | 377 if (split_view_controller_->IsSplitViewModeActive()) { |
| 378 aura::Window* left = split_view_controller_->left_window(); | 378 aura::Window* left = split_view_controller_->left_window(); |
| 379 aura::Window* right = split_view_controller_->right_window(); | 379 aura::Window* right = split_view_controller_->right_window(); |
| 380 CHECK(window == left || window == right); | 380 CHECK(window == left || window == right); |
| 381 if (behind == left || behind == right) | 381 if (behind == left || behind == right) |
| 382 behind = (iter == windows.rend()) ? NULL : *iter; | 382 behind = (iter == windows.rend()) ? nullptr : *iter; |
| 383 } | 383 } |
| 384 | 384 |
| 385 return behind; | 385 return behind; |
| 386 } | 386 } |
| 387 | 387 |
| 388 void WindowManagerImpl::OnTitleDragStarted(aura::Window* window) { | 388 void WindowManagerImpl::OnTitleDragStarted(aura::Window* window) { |
| 389 aura::Window* next_window = GetWindowBehind(window); | 389 aura::Window* next_window = GetWindowBehind(window); |
| 390 if (!next_window) | 390 if (!next_window) |
| 391 return; | 391 return; |
| 392 // Make sure |window| is active. | 392 // Make sure |window| is active. |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 DCHECK(!instance); | 457 DCHECK(!instance); |
| 458 } | 458 } |
| 459 | 459 |
| 460 // static | 460 // static |
| 461 WindowManager* WindowManager::Get() { | 461 WindowManager* WindowManager::Get() { |
| 462 DCHECK(instance); | 462 DCHECK(instance); |
| 463 return instance; | 463 return instance; |
| 464 } | 464 } |
| 465 | 465 |
| 466 } // namespace athena | 466 } // namespace athena |
| OLD | NEW |