2014-09-20 61 views
4

我有两个x11窗口需要保持彼此之间的一定的堆叠顺序,即一个窗口需要保持在另一个之上。我不关心应用程序之外的其他窗口。通常情况下,我会为此使用父/子,但由于X11将子窗口剪切到父窗口,所以我必须将其伪装。我已经尝试了各种方法来保持和/或调整窗口堆栈以保持正确的顺序。然而,WM忽略了除XRaiseWindow()之外的所有内容,这太过于强悍,并且会导致其他窗口出现问题。保持X11窗口在另一个窗口顶部

所以问题是我如何设置两个窗口之间的堆叠,或者有没有办法设置父/子不会导致父剪辑的孩子?

+0

为什么你不能使用像Qt或GTK这样的工具包?否则,阅读[EWMH](http://standards.freedesktop.org/wm-spec/wm-spec-latest.html) – 2014-09-20 20:21:55

+0

Qt GTK不是一个选项。是的,我读过EWMH。但是,正如我所说的,WM正在拒绝这些命令。 – QuickGrip 2014-09-20 21:10:02

+0

它由您的WM控制 - 您是否在说您正在使用非常基本的WM,它不支持EWMH?哪个WM,哪个版本?你可以使用另一个?例如,父子关系不是X11服务器的概念,它是在WM中处理的。就像父母不会夹小孩,但是WM会。所以我们需要了解你的WM开始。 – 2015-06-11 16:11:15

回答

1

是的,您可以使用WM_TRANSIENT_FOR窗口属性使(临时)父窗口显示在子窗口后面而不剪切。 Qt在内部使用它,您可以通过示例使用grep来源。

另请参见this answer作者:cap