Index: ui/views/view.cc |
diff --git a/ui/views/view.cc b/ui/views/view.cc |
index cbcb45cf99a9ef2b973e5ce77d71ddecadb11539..1d47f067493a867cf121d522ead1c7c61fceff26 100644 |
--- a/ui/views/view.cc |
+++ b/ui/views/view.cc |
@@ -456,6 +456,12 @@ void View::SetPaintToLayer(bool paint_to_layer) { |
} |
} |
+ui::Layer* View::RecreateLayer() { |
+ ui::Layer* layer = AcquireLayer(); |
+ CreateLayer(); |
+ return layer; |
+} |
+ |
// RTL positioning ------------------------------------------------------------- |
gfx::Rect View::GetMirroredBounds() const { |
@@ -1781,7 +1787,8 @@ void View::CreateLayer() { |
for (int i = 0, count = child_count(); i < count; ++i) |
child_at(i)->UpdateChildLayerVisibility(true); |
- layer_.reset(new ui::Layer()); |
+ layer_ = new ui::Layer(); |
+ layer_owner_.reset(layer_); |
layer_->set_delegate(this); |
#if !defined(NDEBUG) |
layer_->set_name(GetClassName()); |
@@ -1856,7 +1863,8 @@ void View::DestroyLayer() { |
new_parent->Add(children[i]); |
} |
- layer_.reset(); |
+ layer_ = NULL; |
+ layer_owner_.reset(); |
if (new_parent) |
ReorderLayers(); |