一部のアプリケーションのトレイ機能の最小化を改善しようとしていますが、トレイに最小化されているか、現在のワークスペースに配置されていない場合、トレイ アイコンのクリックでウィンドウを表示したいと考えています。
現在のワークスペース (「ワークスペース 2」) 以外のワークスペース (「ワークスペース 1」としましょう) に表示されているアプリのウィンドウを表示 (最小化解除) しようとすると、問題が発生しました。問題は、ウィンドウの位置が現在のワークスペースに対して相対的にカウントされるため、現在のワークスペースの左側にあるアプリのウィンドウの 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 以外のデスクトップで問題を起こさないかどうかもわかりません。
したがって、問題の他の解決策と、他のLinuxデスクトップの状況に関する情報に感謝します(たとえば、現在のワークスペースに対するウィンドウの位置をgnomeとしてカウントするかどうかなど)。