按z顺序排序窗口数组

时间:2014-10-03 08:45:00

标签: x11

我在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顺序获取Windows?

1 个答案:

答案 0 :(得分:2)

从评论中移出:

XQueryTree会返回按堆叠顺序排序的子项:

  

子项按当前堆叠顺序列出,从最底部(第一个)到最顶部(最后一个)

回答“如果窗口在任务栏/任务切换器中可见,有没有办法快速测试”是“检查它是否_NET_WM_WINDOW_TYPE_NORMAL窗口”