Transparent window in Xwindow parent

2019-05-10 03:30发布

问题:

I am trying to create an overlay window above another running application. Let's say firefox. I implemented by using Xcreatewindow

win = XCreateWindow( display, *firefoxwindow,
                   50, 300, 400, 400,
                   0,
                   visualinfo.depth,
                   InputOutput,
                   visualinfo.visual,
                   CWColormap|CWEventMask|CWBackPixmap|CWBorderPixel,
                   &attr
                   ) ;

I searched *firefoxwindow by using XQueryTree()

and then followed this code https://gist.github.com/903479

The result is the transparent window when I use the XRoot as parent. But, when I try to use firefoxwindow or other application window as parent, it became optique.

回答1:

In your case you need to composite window pixmap with background window manually. When you create window with root as parent transparency is handled by compositing window manager