| Index: ash/wm/mru_window_tracker.cc
|
| diff --git a/ash/wm/mru_window_tracker.cc b/ash/wm/mru_window_tracker.cc
|
| index 4ed9a1df7230add4d26cfe61e7f7828bd220b76a..fc942cb414a5c11af78cc04a6cb4782b69f13e1f 100644
|
| --- a/ash/wm/mru_window_tracker.cc
|
| +++ b/ash/wm/mru_window_tracker.cc
|
| @@ -10,6 +10,7 @@
|
| #include "ash/shell.h"
|
| #include "ash/shell_window_ids.h"
|
| #include "ash/wm/window_cycle_list.h"
|
| +#include "ash/wm/window_state.h"
|
| #include "ash/wm/window_util.h"
|
| #include "ash/wm/workspace_controller.h"
|
| #include "ui/aura/client/activation_client.h"
|
| @@ -31,6 +32,19 @@ void AddTrackedWindows(aura::Window* root,
|
| windows->insert(windows->end(), children.begin(), children.end());
|
| }
|
|
|
| +// Adds windows being dragged in the docked container to |windows| list.
|
| +void AddDraggedWindows(aura::Window* root,
|
| + MruWindowTracker::WindowList* windows) {
|
| + aura::Window* container = Shell::GetContainer(
|
| + root, internal::kShellWindowId_DockedContainer);
|
| + const MruWindowTracker::WindowList& children = container->children();
|
| + for (MruWindowTracker::WindowList::const_iterator iter = children.begin();
|
| + iter != children.end(); ++iter) {
|
| + if (wm::GetWindowState(*iter)->is_dragged())
|
| + windows->insert(windows->end(), *iter);
|
| + }
|
| +}
|
| +
|
| // Returns true if |window| is a container whose windows can be cycled to.
|
| bool IsSwitchableContainer(aura::Window* window) {
|
| if (!window)
|
| @@ -73,6 +87,10 @@ MruWindowTracker::WindowList BuildWindowListInternal(
|
| for (size_t i = 0; i < kSwitchableWindowContainerIdsLength; ++i)
|
| AddTrackedWindows(active_root, kSwitchableWindowContainerIds[i], &windows);
|
|
|
| + // Dragged windows are temporarily parented in docked container. Include them
|
| + // in the in tracked list.
|
| + AddDraggedWindows(active_root, &windows);
|
| +
|
| // Removes unfocusable windows.
|
| MruWindowTracker::WindowList::iterator last =
|
| std::remove_if(
|
|
|