获取窗口相对于其所在工作空间的位置';放在PyGtk上的

获取窗口相对于其所在工作空间的位置';放在PyGtk上的,gtk,position,workspace,Gtk,Position,Workspace,我正在尝试改进一些应用程序的最小化到托盘功能,我想显示托盘上的窗口图标,如果它被最小化到托盘上或不在当前工作区中,请单击 当我试图显示(取消最小化)在工作区(比如“工作区1”)上可见的应用程序窗口而不是当前窗口(“工作区2”)时,我遇到了一个问题。问题在于,在当前工作区左侧的工作区中,应用程序的窗口具有负x坐标,因为窗口位置是相对于当前工作区计算的。我想获得窗口相对于工作区1(不是当前工作区)的位置,并在工作区2(当前工作区)的此时显示它 我现在这样做是为了在当前工作区上显示窗口,位置与前一个工

我正在尝试改进一些应用程序的最小化到托盘功能,我想显示托盘上的窗口图标,如果它被最小化到托盘上或不在当前工作区中,请单击

当我试图显示(取消最小化)在工作区(比如“工作区1”)上可见的应用程序窗口而不是当前窗口(“工作区2”)时,我遇到了一个问题。问题在于,在当前工作区左侧的工作区中,应用程序的窗口具有负x坐标,因为窗口位置是相对于当前工作区计算的。我想获得窗口相对于工作区1(不是当前工作区)的位置,并在工作区2(当前工作区)的此时显示它

我现在这样做是为了在当前工作区上显示窗口,位置与前一个工作区相同:

# get desktop size
ws_width, ws_height = gtk.gdk.get_default_root_window().get_size()
# get position relative to current workspace
x, y = window.get_position()
# get position relative to the workspace the window is on
x %= ws_width
y %= ws_height
window.move(x, y)
window.show()
但我不喜欢这种变通方法,也不确定除了gnome之外,这段代码不会破坏桌面上的smth

因此,对于这个问题的任何其他解决方案以及关于其他linux桌面上的情况的信息(例如,它们是否将相对于当前工作区的窗口位置计算为gnome),我将不胜感激