Index: ash/wm/workspace/workspace_cycler_animator.cc |
diff --git a/ash/wm/workspace/workspace_cycler_animator.cc b/ash/wm/workspace/workspace_cycler_animator.cc |
index a22375c4e84c3d6fae22c83b3c8256085dc44ad9..0575c026771be89595422073bc00cb8f406f027c 100644 |
--- a/ash/wm/workspace/workspace_cycler_animator.cc |
+++ b/ash/wm/workspace/workspace_cycler_animator.cc |
@@ -13,10 +13,12 @@ |
#include "ash/shell_window_ids.h" |
#include "ash/wm/property_util.h" |
#include "ash/wm/shelf_layout_manager.h" |
+#include "ash/wm/window_properties.h" |
#include "ash/wm/workspace/colored_window_controller.h" |
#include "ash/wm/workspace/workspace.h" |
#include "ash/wm/workspace/workspace_cycler_configuration.h" |
#include "base/values.h" |
+#include "ui/aura/root_window.h" |
#include "ui/aura/window.h" |
#include "ui/base/events/event_utils.h" |
#include "ui/compositor/layer_animator.h" |
@@ -388,6 +390,11 @@ void WorkspaceCyclerAnimator::Init(const std::vector<Workspace*>& workspaces, |
} |
void WorkspaceCyclerAnimator::AnimateStartingCycler() { |
+ // Set kCyclingThroughWorkspaces so that the window frame is painted with the |
+ // correct style. |
+ workspaces_[0]->window()->GetRootWindow()->SetProperty( |
+ ash::internal::kCyclingThroughWorkspacesKey, true); |
+ |
// Ensure that the workspaces are stacked with respect to their order |
// in |workspaces_|. |
aura::Window* parent = workspaces_[0]->window()->parent(); |
@@ -592,6 +599,10 @@ void WorkspaceCyclerAnimator::AnimateToUpdatedState(int animation_duration) { |
} |
void WorkspaceCyclerAnimator::CyclerStopped(size_t visible_workspace_index) { |
+ aura::Window* root_window = workspaces_[0]->window()->GetRootWindow(); |
+ root_window->SetProperty(ash::internal::kCyclingThroughWorkspacesKey, |
+ false); |
+ |
for(size_t i = 0; i < workspaces_.size(); ++i) { |
aura::Window* window = workspaces_[i]->window(); |
ui::Layer* layer = window->layer(); |