2
我有一個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級(該文檔不說這事),或者是有這個問題