我一直在为linux开发类似Dock的程序,但问题是当我想在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])
它显示窗口边框(装饰)以及其他停靠栏属性,并且不保留自己的空间。
简单地说,上面的行就好像它们不存在一样
我需要修改什么才能使其正常工作?
P.S。我需要安装所有二进制文件
提前Thx:)
答案 0 :(得分:1)
WINDOW_TYPE_HINT_DOCK
根本没有在Windows端口中实现(或者更确切地说,实现为什么都不做);您可以在GDK source中确认。理论上 - 即使在X窗口管理器中也不需要对类型提示做任何事情(参见EWMH spec)。如果您不想要窗口装饰,只需使用gtk_window_set_decorated删除它。
你问题第二部分的答案是相似的,除了这次很容易确认:它指的是NetWM,它与EWMH相同,是X11的东西。要在Windows中实现struts,我很确定你必须自己使用Win32 API来完成它。 (我不知道如何,但如果你需要窗口处理它在window.window.handle
。)