OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/root_window_controller.h" | 5 #include "ash/root_window_controller.h" |
6 | 6 |
7 #include <queue> | 7 #include <queue> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "ash/ash_constants.h" | 10 #include "ash/ash_constants.h" |
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 // window is open. We only use the active window when in a switchable | 606 // window is open. We only use the active window when in a switchable |
607 // container as the launcher should not exit fullscreen mode. | 607 // container as the launcher should not exit fullscreen mode. |
608 topmost_window = active_window; | 608 topmost_window = active_window; |
609 } else { | 609 } else { |
610 // Otherwise, use the topmost window on the root window's default container | 610 // Otherwise, use the topmost window on the root window's default container |
611 // when there is no active window on this root window. | 611 // when there is no active window on this root window. |
612 const aura::Window::Windows& windows = | 612 const aura::Window::Windows& windows = |
613 GetContainer(kShellWindowId_DefaultContainer)->children(); | 613 GetContainer(kShellWindowId_DefaultContainer)->children(); |
614 for (aura::Window::Windows::const_reverse_iterator iter = windows.rbegin(); | 614 for (aura::Window::Windows::const_reverse_iterator iter = windows.rbegin(); |
615 iter != windows.rend(); ++iter) { | 615 iter != windows.rend(); ++iter) { |
616 if (((*iter)->type() == ui::wm::WINDOW_TYPE_NORMAL || | 616 if (wm::IsWindowUserPositionable(*iter) && |
617 (*iter)->type() == ui::wm::WINDOW_TYPE_PANEL) && | |
618 (*iter)->layer()->GetTargetVisibility()) { | 617 (*iter)->layer()->GetTargetVisibility()) { |
619 topmost_window = *iter; | 618 topmost_window = *iter; |
620 break; | 619 break; |
621 } | 620 } |
622 } | 621 } |
623 } | 622 } |
624 while (topmost_window) { | 623 while (topmost_window) { |
625 if (wm::GetWindowState(topmost_window)->IsFullscreen()) | 624 if (wm::GetWindowState(topmost_window)->IsFullscreen()) |
626 return topmost_window; | 625 return topmost_window; |
627 topmost_window = ::wm::GetTransientParent(topmost_window); | 626 topmost_window = ::wm::GetTransientParent(topmost_window); |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1060 else | 1059 else |
1061 DisableTouchHudProjection(); | 1060 DisableTouchHudProjection(); |
1062 } | 1061 } |
1063 | 1062 |
1064 RootWindowController* GetRootWindowController( | 1063 RootWindowController* GetRootWindowController( |
1065 const aura::Window* root_window) { | 1064 const aura::Window* root_window) { |
1066 return root_window ? GetRootWindowSettings(root_window)->controller : NULL; | 1065 return root_window ? GetRootWindowSettings(root_window)->controller : NULL; |
1067 } | 1066 } |
1068 | 1067 |
1069 } // namespace ash | 1068 } // namespace ash |
OLD | NEW |