我有一个带有托盘图标的 gtk 应用程序,如果用户单击该图标,当他与窗口位于同一工作区时,窗口的可见性就会切换。当他在另一个工作区时,窗口会移动到那个工作区。
现在,如果应用程序和用户在同一个屏幕上并且应用程序完全被另一个应用程序覆盖,我想提升窗口使其位于顶部,而不是先隐藏它,然后在下一个托盘图标上单击再次显示它.
到目前为止我的代码:
def inOverlayed(self):
windows = self.window.get_screen().get_toplevel_windows()
win = self.window.get_window()
x, y, w, h, b = win.get_geometry()
for i in windows:
if win != i:
x2, y2, w2, h2, b2 = i.get_geometry()
if x >= x2 and x + w <= x2 + w2:
if y >= y2 and y + h <= y2 + h2:
return True
return False
最大的问题是似乎没有办法确定一个窗口的 z 级别,但是没有一个就无法区分窗口是在另一个窗口内部还是被一个窗口实际覆盖。
所以我的问题是,我如何找到 Windows z 级别(文档对此没有说明)或者是否有更简单的解决方案来解决这个问题