pygtk WINDOW_TYPE_HINT_DOCK не работает на окнах - PullRequest
2 голосов
/ 02 июля 2011

Я разрабатывал док-подобную программу для linux, но проблема в том, что когда я хочу запустить ее на windows (xp / vista / 7), эти свойства не работают:

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]) 

показывает границы окон (декорации) в дополнение к другим свойствам док-станции и не резервирует свое собственное пространство.

Просто строки выше ведут себя так, как будто они нетам

Что мне нужно изменить, чтобы он работал?

PS У меня установлены все необходимые двоичные файлы

Заранее спасибо:)

1 Ответ

1 голос
/ 03 июля 2011

WINDOW_TYPE_HINT_DOCK просто не реализован в порте Windows (точнее, реализован, чтобы ничего не делать);Вы можете подтвердить это в GDK source .Теоретически - даже в X - оконным менеджерам не требуется ничего делать с подсказкой типа (см. EWMH spec ).Если вы не хотите оформление окна, просто удалите его, используя gtk_window_set_decorated .

Ответ на вторую часть вашего вопроса похож, но на этот раз это очень легко подтвердить: оноотносится к NetWM, который аналогичен EWMH и является X11.Для реализации Struts в Windows я уверен, что вам придется делать это самостоятельно, используя Win32 API.(Я не знаю как, но если вам нужна дескриптор окна, он находится в <em>window</em>.window.handle.)

...