Index: athena/wm/split_view_controller.cc |
diff --git a/athena/wm/split_view_controller.cc b/athena/wm/split_view_controller.cc |
index f951b868846e18f2216c3486220cf067d7a7007e..379cc483f4ca2cb2e462f32597e1c85be8feeb86 100644 |
--- a/athena/wm/split_view_controller.cc |
+++ b/athena/wm/split_view_controller.cc |
@@ -97,6 +97,12 @@ void SplitViewController::ActivateSplitMode(aura::Window* left, |
} |
} |
+ to_hide_.clear(); |
+ if (left_window_ && left_window_ != left && left_window_ != right) |
+ to_hide_.push_back(left_window_); |
+ if (right_window_ && right_window_ != left && right_window_ != right) |
+ to_hide_.push_back(right_window_); |
+ |
SetState(ACTIVE); |
right_window_ = right; |
left_window_ = left; |
@@ -157,16 +163,20 @@ void SplitViewController::UpdateLayout(bool animate) { |
CHECK(left_window_); |
CHECK(right_window_); |
- // Splitview can be activated from SplitViewController::ActivateSplitMode or |
- // SplitViewController::ScrollEnd. Additionally we don't want to rotate the |
- // screen while engaging splitview (i.e. state_ == SCROLLING). |
- if (state_ == INACTIVE && !animate) { |
- if (!wm::IsActiveWindow(left_window_)) |
- left_window_->Hide(); |
- if (!wm::IsActiveWindow(right_window_)) |
- right_window_->Hide(); |
- SetWindowTransforms(gfx::Transform(), gfx::Transform(), false); |
- return; |
+ if (!animate) { |
+ for (size_t i = 0; i < to_hide_.size(); ++i) |
+ to_hide_[i]->Hide(); |
+ to_hide_.clear(); |
+ |
+ if (state_ == INACTIVE) { |
+ if (!wm::IsActiveWindow(left_window_)) |
+ left_window_->Hide(); |
+ if (!wm::IsActiveWindow(right_window_)) |
+ right_window_->Hide(); |
+ |
+ SetWindowTransforms(gfx::Transform(), gfx::Transform(), false); |
+ return; |
+ } |
} |
left_window_->Show(); |