Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
index 849a46b2e3febb7daeb4159c98d29cc788d8d41d..5802d95d7998ec83e9ee3729c678d837aee6a587 100644 |
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
@@ -495,10 +495,15 @@ gfx::Rect DesktopWindowTreeHostX11::GetWorkAreaBoundsInScreen() const { |
void DesktopWindowTreeHostX11::SetShape(gfx::NativeRegion native_region) { |
if (window_shape_) |
XDestroyRegion(window_shape_); |
- custom_window_shape_ = true; |
- window_shape_ = gfx::CreateRegionFromSkRegion(*native_region); |
+ custom_window_shape_ = false; |
+ window_shape_ = NULL; |
+ |
+ if (native_region) { |
+ custom_window_shape_ = true; |
+ window_shape_ = gfx::CreateRegionFromSkRegion(*native_region); |
+ delete native_region; |
+ } |
ResetWindowRegion(); |
- delete native_region; |
} |
void DesktopWindowTreeHostX11::Activate() { |