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 586d36ddd81e4636a72c8d4fdd2745dd260045cd..82ba30c804f47a2689399431ec8be909a582cc4e 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 |
@@ -784,7 +784,7 @@ bool DesktopWindowTreeHostX11::ShouldUseNativeFrame() const { |
} |
bool DesktopWindowTreeHostX11::ShouldWindowContentsBeTransparent() const { |
- return false; |
+ return IsTranslucentWindowOpacitySupported(); |
} |
void DesktopWindowTreeHostX11::FrameTypeChanged() { |
@@ -940,7 +940,7 @@ bool DesktopWindowTreeHostX11::IsAnimatingClosed() const { |
} |
bool DesktopWindowTreeHostX11::IsTranslucentWindowOpacitySupported() const { |
- return false; |
+ return use_argb_visual_; |
} |
void DesktopWindowTreeHostX11::SizeConstraintsChanged() { |
@@ -1148,7 +1148,10 @@ void DesktopWindowTreeHostX11::InitX11Window( |
attribute_mask |= CWBorderPixel; |
swa.border_pixel = 0; |
- use_argb_visual_ = true; |
+ // A compositing manager is required to support transparency. |
+ use_argb_visual_ = |
+ XGetSelectionOwner(xdisplay_, atom_cache_.GetAtom("_NET_WM_CM_S0")) != |
+ None; |
} |
bounds_in_pixels_ = ToPixelRect(params.bounds); |