У меня есть приложение 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-уровень окна, но без него невозможно различить, находится ли окно только внутри другого или если оно наложено на один из них.
Итак, мой вопрос: как мне узнать z-уровень Windows (в документах об этом ничего не сказано) или есть более простое решение для этой проблемы