7
如何检查pygtk窗口在当前桌面上?检查窗口是否在当前桌面上?
我固定的程序有:
if self.pymp.window.get_property('visible'):
self.pymp.window.hide()
else:
self.pymp.window.move(self.pymp.position[0], self.pymp.position[1])
self.pymp.window.show()
self.pymp.window.present()
我想替换:
if self.pymp.window.get_property('visible'):
有了:
if self.pymp.window.get_property('visible') and window_is_on_current_workspace(self.pymp.window):
我可以wnck
实现window_is_on_current_workspace(window)
为:
def window_is_on_current_workspace(window):
import wnck
v = wnck.screen_get_default() # needed due to known bug
xid = window.window.xid
win = None
while win is None:
win = wnck.window_get(xid)
if gtk.events_pending():
gtk.main_iteration()
wor = win.get_screen().get_active_workspace()
return win.is_on_workspace(wor)
它的作品,但它是恶作剧。有一个更好的方法吗?
整个循环可以被'window.is_on_workspace(screen.get_active_workspace())'替代。无需遍历所有窗口。 – 2014-08-03 15:31:01