OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/wm/overview/scoped_transform_overview_window.h" | 5 #include "ash/wm/overview/scoped_transform_overview_window.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/wm/window_state.h" | 8 #include "ash/wm/window_state.h" |
9 #include "ui/aura/client/aura_constants.h" | 9 #include "ui/aura/client/aura_constants.h" |
10 #include "ui/aura/client/screen_position_client.h" | 10 #include "ui/aura/client/screen_position_client.h" |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 if (window_copy_) | 177 if (window_copy_) |
178 new CleanupWidgetAfterAnimationObserver(window_copy_, layer_); | 178 new CleanupWidgetAfterAnimationObserver(window_copy_, layer_); |
179 AnimateTransformOnWindowAndTransientChildren(original_transform_); | 179 AnimateTransformOnWindowAndTransientChildren(original_transform_); |
180 window_copy_ = NULL; | 180 window_copy_ = NULL; |
181 layer_ = NULL; | 181 layer_ = NULL; |
182 if (minimized_ && window_->GetProperty(aura::client::kShowStateKey) != | 182 if (minimized_ && window_->GetProperty(aura::client::kShowStateKey) != |
183 ui::SHOW_STATE_MINIMIZED) { | 183 ui::SHOW_STATE_MINIMIZED) { |
184 // Setting opacity 0 and visible false ensures that the property change | 184 // Setting opacity 0 and visible false ensures that the property change |
185 // to SHOW_STATE_MINIMIZED will not animate the window from its original | 185 // to SHOW_STATE_MINIMIZED will not animate the window from its original |
186 // bounds to the minimized position. | 186 // bounds to the minimized position. |
| 187 // Hiding the window needs to be done before the target opacity is 0, |
| 188 // otherwise the layer's visibility will not be updated |
| 189 // (See VisibilityController::UpdateLayerVisibility). |
| 190 window_->Hide(); |
187 window_->layer()->SetOpacity(0); | 191 window_->layer()->SetOpacity(0); |
188 window_->Hide(); | |
189 window_->SetProperty(aura::client::kShowStateKey, | 192 window_->SetProperty(aura::client::kShowStateKey, |
190 ui::SHOW_STATE_MINIMIZED); | 193 ui::SHOW_STATE_MINIMIZED); |
191 } | 194 } |
192 ash::wm::GetWindowState(window_)->set_ignored_by_shelf(ignored_by_shelf_); | 195 ash::wm::GetWindowState(window_)->set_ignored_by_shelf(ignored_by_shelf_); |
193 } else if (window_copy_) { | 196 } else if (window_copy_) { |
194 // If this class still owns a copy of the window, clean up the copy. This | 197 // If this class still owns a copy of the window, clean up the copy. This |
195 // will be the case if the window was destroyed. | 198 // will be the case if the window was destroyed. |
196 window_copy_->Close(); | 199 window_copy_->Close(); |
197 if (layer_) | 200 if (layer_) |
198 views::corewm::DeepDeleteLayers(layer_); | 201 views::corewm::DeepDeleteLayers(layer_); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 transient_child->SetTransform(transient_window_transform); | 292 transient_child->SetTransform(transient_window_transform); |
290 } | 293 } |
291 } | 294 } |
292 | 295 |
293 void ScopedTransformOverviewWindow::OnOverviewStarted() { | 296 void ScopedTransformOverviewWindow::OnOverviewStarted() { |
294 ash::wm::GetWindowState(window_)->set_ignored_by_shelf(true); | 297 ash::wm::GetWindowState(window_)->set_ignored_by_shelf(true); |
295 RestoreWindow(); | 298 RestoreWindow(); |
296 } | 299 } |
297 | 300 |
298 } // namespace ash | 301 } // namespace ash |
OLD | NEW |