2014-09-20 60 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