显然窗口管理器(在我的例子中是Compiz)处理你在Ubuntu中所有Xlib窗口下看到的投影,因此与X Window系统通信不会影响我在代码中创建的窗口上生成的默认阴影。因此,我如何通过我的代码与 Compiz 进行通信,以在新创建的窗口下分配更大/更小/不同的颜色阴影?
编辑:我只使用c ++和xlib库,而不是QT
编辑:与窗口管理器交谈的方法似乎越来越复杂,我尝试得越多,所以有人有其他建议吗?也许在原始窗口之后的第二个窗口具有某种设置?
您需要编写复合管理器以具有阴影/透明度和类似的效果(我假设您这样做是为了了解它在引擎盖下的工作方式。如果你只需要影子 - 几乎每个补偿经理都有这个选项,请阅读 xcompmgr/compiz 手册)
这是对复合/伤害扩展的一个很好的介绍。您需要重定向所有顶级窗口并在特殊的覆盖窗口中手动绘制它们