]> git.sesse.net Git - vlc/commitdiff
Skins2: Add x11 transparency support. Hope it sets the property on the right Window...
authorJP Dinger <jpd@videolan.org>
Sat, 28 Nov 2009 14:08:59 +0000 (15:08 +0100)
committerJP Dinger <jpd@videolan.org>
Sat, 5 Dec 2009 21:25:43 +0000 (22:25 +0100)
modules/gui/skins2/x11/x11_window.cpp

index 426d0f3238b042e74f0c6741d65127011b83d599..8ca46a6d14432d820e02c38393f7786575b580d0 100644 (file)
@@ -185,7 +185,16 @@ void X11Window::raise() const
 
 void X11Window::setOpacity( uint8_t value ) const
 {
-    // Sorry, the opacity cannot be changed :)
+    Atom opaq = XInternAtom(XDISPLAY, "_NET_WM_WINDOW_OPACITY", False);
+    if( 255==value )
+        XDeleteProperty(XDISPLAY, m_wnd, opaq);
+    else
+    {
+        uint32_t opacity = value * ((uint32_t)-1/255);
+        XChangeProperty(XDISPLAY, m_wnd, opaq, XA_CARDINAL, 32,
+                        PropModeReplace, (unsigned char *) &opacity, 1L);
+    }
+    XSync( XDISPLAY, False );
 }