Xwindow 父窗口中的透明窗口

use*_*758 5 x11 overlay transparent xlib

我正在尝试在另一个正在运行的应用程序上方创建一个覆盖窗口。让我们说火狐。我是通过使用 Xcreatewindow 实现的

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

我使用 XQueryTree() 搜索了 *firefoxwindow

然后按照此代码 https://gist.github.com/903479

结果是当我使用 XRoot 作为父级时的透明窗口。但是,当我尝试使用 firefoxwindow 或其他应用程序窗口作为父窗口时,它变得 optique。

And*_*rov 4

在您的情况下,您需要手动将窗口像素图与背景窗口合成。当您创建以 root 作为父级的窗口时,透明度由合成窗口管理器处理

  • 通常全屏应用程序仅使用非框架窗口(0,0,屏幕宽度,屏幕高度) - 没有魔法。您应该能够在其上重新堆叠窗口 (2认同)