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

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, 9 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
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..25277c936bccd65556ec629aaaf5719d947fa92a 100644
--- a/ash/wm/overview/window_selector.cc
+++ b/ash/wm/overview/window_selector.cc
@@ -218,6 +218,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)
+ 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(
@@ -456,10 +466,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] &&
@@ -568,8 +576,10 @@ void WindowSelector::HideAndTrackNonOverviewWindows() {
for (aura::Window::Windows::const_iterator iter =
container->children().begin(); iter != container->children().end();
++iter) {
- if (!(*iter)->IsVisible() || (*grid_iter)->Contains(*iter))
+ if (!(*iter)->IsVisible() || (*grid_iter)->Contains(*iter) ||
+ !IsSelectable(*iter)) {
flackr 2015/04/07 15:08:39 It's confusing that IsSelectable is not a subset o
oshima 2015/04/07 18:00:32 My understanding is that WindowSelector accepts wi
flackr 2015/04/07 18:10:33 This is historical from when we engaged overview a
oshima 2015/04/07 18:20:47 WindowSelectorTest.NonActivatableWindowsHiddens fa
flackr 2015/04/07 18:26:22 I believe so. I can't think of any non activatable
oshima 2015/04/07 20:35:29 Done.
continue;
+ }
hidden_windows_.Add(*iter);
}
}

Powered by Google App Engine
This is Rietveld 408576698