Index: ui/aura/window.cc |
diff --git a/ui/aura/window.cc b/ui/aura/window.cc |
index c1f7487309be081a743a3e1696c245d952f05976..bbb1ccd8901255934f59c488cd3b76801ed16ff9 100644 |
--- a/ui/aura/window.cc |
+++ b/ui/aura/window.cc |
@@ -145,6 +145,9 @@ ui::Layer* Window::RecreateLayer() { |
return NULL; |
old_layer->set_delegate(NULL); |
+ float mailbox_scale_factor; |
+ cc::TextureMailbox mailbox = |
+ old_layer->GetTextureMailbox(&mailbox_scale_factor); |
scoped_refptr<ui::Texture> old_texture = old_layer->external_texture(); |
if (delegate_ && old_texture) |
old_layer->SetExternalTexture(delegate_->CopyTexture()); |
@@ -160,6 +163,8 @@ ui::Layer* Window::RecreateLayer() { |
// crbug.com/175211. |
if (delegate_ && old_texture) |
layer_->SetExternalTexture(old_texture); |
+ else if (mailbox.IsValid()) |
+ layer_->SetTextureMailbox(mailbox, mailbox_scale_factor); |
UpdateLayerName(name_); |
layer_->SetFillsBoundsOpaquely(!transparent_); |
@@ -313,10 +318,6 @@ void Window::SchedulePaintInRect(const gfx::Rect& rect) { |
} |
} |
-void Window::SetExternalTexture(ui::Texture* texture) { |
- layer_->SetExternalTexture(texture); |
-} |
- |
void Window::SetDefaultParentByRootWindow(RootWindow* root_window, |
const gfx::Rect& bounds_in_screen) { |
DCHECK(root_window); |