Chromium Code Reviews| 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 c6fc3d741df0f5d11ad26d27bbfb428768bbcb81..ba57b60be9a6185daef7e39c5af5901f68b4e0cd 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 |
| @@ -492,8 +492,19 @@ void DesktopWindowTreeHostX11::SetShape(gfx::NativeRegion native_region) { |
| window_shape_ = NULL; |
| if (native_region) { |
| + gfx::Transform transform = GetRootTransform(); |
| + if (!transform.IsIdentity()) { |
| + SkPath path_in_dip; |
| + if (native_region->getBoundaryPath(&path_in_dip)) { |
| + SkPath path_in_pixels; |
| + path_in_dip.transform(transform.matrix(), &path_in_pixels); |
| + window_shape_ = gfx::CreateRegionFromSkPath(path_in_pixels); |
| + } |
|
pkotwicz
2015/03/08 23:44:57
I getBoundaryPath() returns false, you can just do
sadrul
2015/03/09 17:20:10
Done.
|
| + } |
|
pkotwicz
2015/03/08 23:33:26
Move "window_shape_ = gfx::CreateRegionFromSkRegio
sadrul
2015/03/09 17:20:10
Done.
|
| + |
| custom_window_shape_ = true; |
| - window_shape_ = gfx::CreateRegionFromSkRegion(*native_region); |
| + if (!window_shape_) |
| + window_shape_ = gfx::CreateRegionFromSkRegion(*native_region); |
| delete native_region; |
| } |
| ResetWindowRegion(); |