Chromium Code Reviews| Index: ash/wm/overview/window_selector.cc |
| diff --git a/ash/wm/overview/window_selector.cc b/ash/wm/overview/window_selector.cc |
| index 6230b9b7c50331bd1f818be81e233deedbbd7c59..f3a33db8644b3baebd3b77e4b159a801bad17d70 100644 |
| --- a/ash/wm/overview/window_selector.cc |
| +++ b/ash/wm/overview/window_selector.cc |
| @@ -16,8 +16,6 @@ |
| #include "ash/shell.h" |
| #include "ash/shell_window_ids.h" |
| #include "ash/switchable_windows.h" |
| -#include "ash/wm/overview/scoped_overview_animation_settings.h" |
| -#include "ash/wm/overview/scoped_transform_overview_window.h" |
| #include "ash/wm/overview/window_grid.h" |
| #include "ash/wm/overview/window_selector_delegate.h" |
| #include "ash/wm/overview/window_selector_item.h" |
| @@ -218,6 +216,16 @@ views::Widget* CreateTextFilter(views::TextfieldController* controller, |
| const int WindowSelector::kTextFilterBottomEdge = |
| kTextFilterDistanceFromTop + kTextFilterHeight; |
| +// static |
| +bool WindowSelector::IsSelectable(aura::Window* window) { |
| + wm::WindowState* state = wm::GetWindowState(window); |
| + if (state->GetStateType() == wm::WINDOW_STATE_TYPE_DOCKED || |
| + state->GetStateType() == wm::WINDOW_STATE_TYPE_DOCKED_MINIMIZED) |
|
varkha
2015/04/07 21:45:45
nit: Multi-line condition needs {
oshima
2015/04/07 22:15:03
Done.
|
| + return false; |
|
varkha
2015/04/07 21:45:45
Just a question: Are you considering to make docke
flackr
2015/04/07 21:48:28
Yes, we should be - http://crbug.com/351329. It wi
|
| + return window->type() == ui::wm::WINDOW_TYPE_NORMAL || |
| + window->type() == ui::wm::WINDOW_TYPE_PANEL; |
| +} |
| + |
| WindowSelector::WindowSelector(WindowSelectorDelegate* delegate) |
| : delegate_(delegate), |
| restore_focus_window_(aura::client::GetFocusClient( |
| @@ -302,7 +310,6 @@ void WindowSelector::Init(const WindowList& windows) { |
| shell->GetScreen()->AddObserver(this); |
| shell->metrics()->RecordUserMetricsAction(UMA_WINDOW_OVERVIEW); |
| - HideAndTrackNonOverviewWindows(); |
| // Send an a11y alert. |
| shell->accessibility_delegate()->TriggerAccessibilityAlert( |
| ui::A11Y_ALERT_WINDOW_OVERVIEW_MODE_ENTERED); |
| @@ -327,16 +334,6 @@ void WindowSelector::Shutdown() { |
| ->layout_manager())->SetShowCalloutWidgets(true); |
| } |
| - const aura::WindowTracker::Windows hidden_windows(hidden_windows_.windows()); |
| - for (aura::WindowTracker::Windows::const_iterator iter = |
| - hidden_windows.begin(); iter != hidden_windows.end(); ++iter) { |
| - ScopedOverviewAnimationSettings animation_settings( |
| - OverviewAnimationType::OVERVIEW_ANIMATION_LAY_OUT_SELECTOR_ITEMS, |
| - *iter); |
| - (*iter)->layer()->SetOpacity(1); |
| - (*iter)->Show(); |
| - } |
| - |
| size_t remaining_items = 0; |
| for (WindowGrid* window_grid : grid_list_) { |
| for (WindowSelectorItem* window_selector_item : window_grid->window_list()) |
| @@ -456,10 +453,8 @@ void WindowSelector::OnDisplayMetricsChanged(const gfx::Display& display, |
| } |
| void WindowSelector::OnWindowAdded(aura::Window* new_window) { |
| - if (new_window->type() != ui::wm::WINDOW_TYPE_NORMAL && |
| - new_window->type() != ui::wm::WINDOW_TYPE_PANEL) { |
| + if (!IsSelectable(new_window)) |
| return; |
| - } |
| for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) { |
| if (new_window->parent()->id() == kSwitchableWindowContainerIds[i] && |
| @@ -556,42 +551,6 @@ void WindowSelector::PositionWindows(bool animate) { |
| } |
| } |
| -void WindowSelector::HideAndTrackNonOverviewWindows() { |
| - // Add the windows to hidden_windows first so that if any are destroyed |
| - // while hiding them they are tracked. |
| - for (ScopedVector<WindowGrid>::iterator grid_iter = grid_list_.begin(); |
| - grid_iter != grid_list_.end(); ++grid_iter) { |
| - for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i) { |
| - const aura::Window* container = |
| - Shell::GetContainer((*grid_iter)->root_window(), |
| - kSwitchableWindowContainerIds[i]); |
| - for (aura::Window::Windows::const_iterator iter = |
| - container->children().begin(); iter != container->children().end(); |
| - ++iter) { |
| - if (!(*iter)->IsVisible() || (*grid_iter)->Contains(*iter)) |
| - continue; |
| - hidden_windows_.Add(*iter); |
| - } |
| - } |
| - } |
| - |
| - // Copy the window list as it can change during iteration. |
| - const aura::WindowTracker::Windows hidden_windows(hidden_windows_.windows()); |
| - for (aura::WindowTracker::Windows::const_iterator iter = |
| - hidden_windows.begin(); iter != hidden_windows.end(); ++iter) { |
| - if (!hidden_windows_.Contains(*iter)) |
| - continue; |
| - ScopedOverviewAnimationSettings animation_settings( |
| - OverviewAnimationType::OVERVIEW_ANIMATION_HIDE_WINDOW, |
| - *iter); |
| - (*iter)->Hide(); |
| - // Hiding the window can result in it being destroyed. |
| - if (!hidden_windows_.Contains(*iter)) |
| - continue; |
| - (*iter)->layer()->SetOpacity(0); |
| - } |
| -} |
| - |
| void WindowSelector::ResetFocusRestoreWindow(bool focus) { |
| if (!restore_focus_window_) |
| return; |