我在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
原子来命令窗口。我使用了XQuerySubtree
和XGetWindowProperty
。但它并不是最好的解决方案,因为很多时候它会在最近的窗口之前获得窗口。代码在这里:https://gist.github.com/Noitidart/60aab0a96f060240614f
我想知道是否有办法按z顺序获取Windows?
答案 0 :(得分:2)
从评论中移出:
XQueryTree会返回按堆叠顺序排序的子项:
子项按当前堆叠顺序列出,从最底部(第一个)到最顶部(最后一个)
回答“如果窗口在任务栏/任务切换器中可见,有没有办法快速测试”是“检查它是否_NET_WM_WINDOW_TYPE_NORMAL窗口”