2014-10-03 117 views
1

我閱讀本約堆疊順序的窗口上X11/Z次序:訂單陣列

爲了獲得不同的桌面環境之間良好的互操作性,建議使用以下層狀堆疊順序,從底部:

windows of type _NET_WM_TYPE_DESKTOP 

windows having state _NET_WM_STATE_BELOW 

windows not belonging in any other layer 

windows of type _NET_WM_TYPE_DOCK (unless they have state _NET_WM_TYPE_BELOW) and windows having state _NET_WM_STATE_ABOVE 

focused windows having state _NET_WM_STATE_FULLSCREEN 

我能夠用得到_NET_WM_USER_TIME原子命令窗口。我使用XQuerySubtreeXGetWindowProperty。但它並不是最好的解決方案,因爲很多次它在最近的窗口之前就已經看到了窗口。代碼在這裏:https://gist.github.com/Noitidart/60aab0a96f060240614f

我想知道是否有一種方法來獲取窗口的z順序?

+1

QueryTree應該夠了嗎? 「這個請求返回窗口的根目錄,父目錄和子目錄,子目錄按照從下到上的順序排列。」 – 2014-10-03 12:39:37

+0

哦,沒辦法!我不知道這是默認情況下,列爲頂部那是超酷的感謝男人!這是一個xy的問題,但有沒有什麼辦法做一個快速測試,如果窗口是可見的(意思就像我可以在alt +標籤菜單中找到它) – Noitidart 2014-10-04 04:53:35

+1

不知道我的頭頂,可能是WM/de具體。嘗試閱讀http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html – 2014-10-04 09:59:38

回答

2

自評感動:

XQueryTree不會返回通過堆疊順序排序的孩子:

孩子們在當前堆疊順序列出,從最底層(第一)到最上面(最後)

回答「如果窗口在任務欄/任務切換器中可見,是否有任何方法可以執行快速測試」是「檢查它是否爲_NET_WM_WINDOW_TYPE_NORMAL窗口」