| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ash/wm/overview/window_selector.h" | 5 #include "ash/wm/overview/window_selector.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "ash/accessibility_delegate.h" | 13 #include "ash/accessibility_delegate.h" |
| 14 #include "ash/ash_switches.h" | 14 #include "ash/ash_switches.h" |
| 15 #include "ash/metrics/user_metrics_recorder.h" | 15 #include "ash/metrics/user_metrics_recorder.h" |
| 16 #include "ash/root_window_controller.h" | 16 #include "ash/root_window_controller.h" |
| 17 #include "ash/shell.h" | 17 #include "ash/shell.h" |
| 18 #include "ash/shell_window_ids.h" | 18 #include "ash/shell_window_ids.h" |
| 19 #include "ash/switchable_windows.h" | |
| 20 #include "ash/wm/aura/wm_window_aura.h" | 19 #include "ash/wm/aura/wm_window_aura.h" |
| 20 #include "ash/wm/common/switchable_windows.h" |
| 21 #include "ash/wm/common/window_state.h" | 21 #include "ash/wm/common/window_state.h" |
| 22 #include "ash/wm/mru_window_tracker.h" | 22 #include "ash/wm/mru_window_tracker.h" |
| 23 #include "ash/wm/overview/window_grid.h" | 23 #include "ash/wm/overview/window_grid.h" |
| 24 #include "ash/wm/overview/window_selector_delegate.h" | 24 #include "ash/wm/overview/window_selector_delegate.h" |
| 25 #include "ash/wm/overview/window_selector_item.h" | 25 #include "ash/wm/overview/window_selector_item.h" |
| 26 #include "ash/wm/panels/panel_layout_manager.h" | 26 #include "ash/wm/panels/panel_layout_manager.h" |
| 27 #include "ash/wm/window_state_aura.h" | 27 #include "ash/wm/window_state_aura.h" |
| 28 #include "ash/wm/window_util.h" | 28 #include "ash/wm/window_util.h" |
| 29 #include "base/auto_reset.h" | 29 #include "base/auto_reset.h" |
| 30 #include "base/command_line.h" | 30 #include "base/command_line.h" |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 // if you have 3 or more monitors which are not strictly | 263 // if you have 3 or more monitors which are not strictly |
| 264 // horizontal or vertical but that case is not yet supported. | 264 // horizontal or vertical but that case is not yet supported. |
| 265 return (a->GetBoundsInScreen().x() + a->GetBoundsInScreen().y()) < | 265 return (a->GetBoundsInScreen().x() + a->GetBoundsInScreen().y()) < |
| 266 (b->GetBoundsInScreen().x() + b->GetBoundsInScreen().y()); | 266 (b->GetBoundsInScreen().x() + b->GetBoundsInScreen().y()); |
| 267 }); | 267 }); |
| 268 | 268 |
| 269 for (aura::Window::Windows::const_iterator iter = root_windows.begin(); | 269 for (aura::Window::Windows::const_iterator iter = root_windows.begin(); |
| 270 iter != root_windows.end(); iter++) { | 270 iter != root_windows.end(); iter++) { |
| 271 // Observed switchable containers for newly created windows on all root | 271 // Observed switchable containers for newly created windows on all root |
| 272 // windows. | 272 // windows. |
| 273 for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) { | 273 for (size_t i = 0; i < wm::kSwitchableWindowContainerIdsLength; ++i) { |
| 274 aura::Window* container = Shell::GetContainer(*iter, | 274 aura::Window* container = |
| 275 kSwitchableWindowContainerIds[i]); | 275 Shell::GetContainer(*iter, wm::kSwitchableWindowContainerIds[i]); |
| 276 container->AddObserver(this); | 276 container->AddObserver(this); |
| 277 observed_windows_.insert(container); | 277 observed_windows_.insert(container); |
| 278 } | 278 } |
| 279 | 279 |
| 280 // Hide the callout widgets for panels. It is safe to call this for | 280 // Hide the callout widgets for panels. It is safe to call this for |
| 281 // root windows that don't contain any panel windows. | 281 // root windows that don't contain any panel windows. |
| 282 PanelLayoutManager::Get(wm::WmWindowAura::Get(*iter)) | 282 PanelLayoutManager::Get(wm::WmWindowAura::Get(*iter)) |
| 283 ->SetShowCalloutWidgets(false); | 283 ->SetShowCalloutWidgets(false); |
| 284 | 284 |
| 285 std::unique_ptr<WindowGrid> grid(new WindowGrid(*iter, windows, this)); | 285 std::unique_ptr<WindowGrid> grid(new WindowGrid(*iter, windows, this)); |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 void WindowSelector::OnDisplayMetricsChanged(const gfx::Display& display, | 480 void WindowSelector::OnDisplayMetricsChanged(const gfx::Display& display, |
| 481 uint32_t metrics) { | 481 uint32_t metrics) { |
| 482 PositionWindows(/* animate */ false); | 482 PositionWindows(/* animate */ false); |
| 483 RepositionTextFilterOnDisplayMetricsChange(); | 483 RepositionTextFilterOnDisplayMetricsChange(); |
| 484 } | 484 } |
| 485 | 485 |
| 486 void WindowSelector::OnWindowAdded(aura::Window* new_window) { | 486 void WindowSelector::OnWindowAdded(aura::Window* new_window) { |
| 487 if (!IsSelectable(new_window)) | 487 if (!IsSelectable(new_window)) |
| 488 return; | 488 return; |
| 489 | 489 |
| 490 for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) { | 490 for (size_t i = 0; i < wm::kSwitchableWindowContainerIdsLength; ++i) { |
| 491 if (new_window->parent()->id() == kSwitchableWindowContainerIds[i] && | 491 if (new_window->parent()->id() == wm::kSwitchableWindowContainerIds[i] && |
| 492 !::wm::GetTransientParent(new_window)) { | 492 !::wm::GetTransientParent(new_window)) { |
| 493 // The new window is in one of the switchable containers, abort overview. | 493 // The new window is in one of the switchable containers, abort overview. |
| 494 CancelSelection(); | 494 CancelSelection(); |
| 495 return; | 495 return; |
| 496 } | 496 } |
| 497 } | 497 } |
| 498 } | 498 } |
| 499 | 499 |
| 500 void WindowSelector::OnWindowDestroying(aura::Window* window) { | 500 void WindowSelector::OnWindowDestroying(aura::Window* window) { |
| 501 window->RemoveObserver(this); | 501 window->RemoveObserver(this); |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 for (size_t i = 0; | 635 for (size_t i = 0; |
| 636 i <= grid_list_.size() && | 636 i <= grid_list_.size() && |
| 637 grid_list_[selected_grid_index_]->Move(direction, animate); i++) { | 637 grid_list_[selected_grid_index_]->Move(direction, animate); i++) { |
| 638 selected_grid_index_ = | 638 selected_grid_index_ = |
| 639 (selected_grid_index_ + display_direction + grid_list_.size()) % | 639 (selected_grid_index_ + display_direction + grid_list_.size()) % |
| 640 grid_list_.size(); | 640 grid_list_.size(); |
| 641 } | 641 } |
| 642 } | 642 } |
| 643 | 643 |
| 644 } // namespace ash | 644 } // namespace ash |
| OLD | NEW |