Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3566)

Unified Diff: ash/wm/overview/window_selector.cc

Issue 1059903002: Allow Alt-Tab to move the focus to docked windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/wm/overview/window_selector.h ('k') | ash/wm/overview/window_selector_controller.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..43771ea66ff59fadb9bf4361a13c5af4c7206859 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,17 @@ 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) {
+ return false;
+ }
+ 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 +311,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 +335,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 +454,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 +552,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;
« no previous file with comments | « ash/wm/overview/window_selector.h ('k') | ash/wm/overview/window_selector_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698