2014-10-03 84 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窗口”