Index: ash/wm/drag_window_controller.cc |
diff --git a/ash/wm/drag_window_controller.cc b/ash/wm/drag_window_controller.cc |
index fb6bc25cf677e44f7384d95fd00d60a68bc4538a..5200ab1bc7ea1657a99324e3dc3a203ac8afe40e 100644 |
--- a/ash/wm/drag_window_controller.cc |
+++ b/ash/wm/drag_window_controller.cc |
@@ -58,6 +58,7 @@ class DragWindowController::DragWindowDetails |
// when it becomes necessary again. |
DCHECK(!drag_window_); |
layer_owner_.reset(); |
+ delegates_.clear(); // Stop observing layers. |
return; |
} |
if (!drag_window_) |
@@ -115,14 +116,12 @@ class DragWindowController::DragWindowDetails |
void RecreateWindowLayers(aura::Window* original_window) { |
DCHECK(!layer_owner_.get()); |
- layer_owner_ = ::wm::RecreateLayers(original_window, this); |
+ layer_owner_ = ::wm::MirrorLayers(original_window, this); |
// Place the layer at (0, 0) of the DragWindowController's window. |
gfx::Rect layer_bounds = layer_owner_->root()->bounds(); |
layer_bounds.set_origin(gfx::Point(0, 0)); |
layer_owner_->root()->SetBounds(layer_bounds); |
layer_owner_->root()->SetVisible(false); |
- // Detach it from the current container. |
- layer_owner_->root()->parent()->Remove(layer_owner_->root()); |
} |
void SetOpacity(const aura::Window* original_window, float opacity) { |
@@ -132,12 +131,13 @@ class DragWindowController::DragWindowDetails |
layer_owner_->root()->SetOpacity(1.0f); |
} |
- // aura::WindowDelegate: |
- ui::LayerDelegate* CreateDelegate(ui::Layer* foo, ui::Layer* layer) override { |
+ // wm::LayerDelegateFactory: |
+ ui::LayerDelegate* CreateDelegate(ui::Layer* new_layer, |
+ ui::Layer* layer) override { |
if (!layer || !layer->delegate()) |
return nullptr; |
wm::ForwardingLayerDelegate* new_delegate = |
- new wm::ForwardingLayerDelegate(foo, layer); |
+ new wm::ForwardingLayerDelegate(new_layer, layer); |
delegates_.push_back(base::WrapUnique(new_delegate)); |
return new_delegate; |
} |