У меня есть приложение gtk, в котором есть значок в трее, если пользователь нажимает на значок, видимость окна переключается, когда он находится в том же рабочем пространстве, что и окно. Когда он находится в другом рабочем пространстве, окно переходит к этому.GTK/GDK Как узнать, накладывается ли окно другим?
Теперь, если приложение и пользователь находятся на одном экране, и приложение полностью наложено другим, я хочу поднять окно, чтобы оно было сверху, вместо того, чтобы сначала спрятать его и на следующем значке в трее щелкните его снова.
Мой код до сих пор:
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-уровень, но не один не может различить, если окно только внутри другого или если он накладывается на один.
Так что мой вопрос, как я могу выяснить окна Z-уровень (документы об этом ничего не говорят) или есть более простое решение этой проблемы