2011-07-02 14 views
2

私はLinux用のドックのようなプログラムを開発していましたが、Windows(xp/vista/7)上で実行したいときには、これらのプロパティは機能しません:pygtk WINDOW_TYPE_HINT_DOCKがウィンドウ上で動作しない

self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK) 

self.window.get_toplevel().show() # must call show() before property_change() 
self.window.get_toplevel().window.property_change("_NET_WM_STRUT", 
"CARDINAL", 32, gtk.gdk.PROP_MODE_REPLACE, [0, 0, 0, bottom_width]) 

それは他のドックの特性に加えて、ウィンドウの枠線(飾り)を示し、独自のスペースを確保しません。

単に、振る舞い上記の行彼らが

がそこにいないかのように私はそれを動作させるために変更する必要がありますか?

P.S.私は必要なすべてのバイナリが事前に

Thxを:)

答えて

1

WINDOW_TYPE_HINT_DOCKは、単にWindowsのポートに実装されていませんが(というか、何もしないように実装)がインストールされています。これはGDK sourceで確認できます。理論的には—でもX —ウィンドウマネージャはタイプヒントで何もする必要はありません(EWMH spec参照)。ウィンドウ装飾が不要な場合は、gtk_window_set_decoratedを使用して削除してください。

質問の2番目の部分への回答は今回は似ていますが、今回は非常に簡単です:NetWMを指します。これはEWMHと同じでX11のものです。 Windowsでストラットを実装するには、Win32 APIを使用して独自にストラットを実行する必要があることを確信しています。 (どういうわけか分かりませんが、ウィンドウハンドルが必要な場合はwindow.window.handleにあります)

関連する問題