此行为由您的窗口管理器控制,您无法真正做到。
(在我的测试,现在看来,Xfwm4和Fluxbox的提出保上方的窗户上面停靠/面板窗口,尽管什么EWMH recommends,但也许你的WM没有。)
有,然而,一个非常有限的解决方法:如果您假设用户永远不会有多个停靠/面板,则可以将该窗口设置为transient。通常(同样,取决于窗口管理器),这将使窗口保持在停靠窗口之上。
更新:在X11,可以设置临时窗口,即使他们不在同一个进程。我找到的最简单的方法是使用libwnck获取面板窗口的XID,然后使用gdk_window_foreign_new将其导入到GDK。当然,这在非X系统中不起作用。
import wnck
screen = wnck.screen_get_default()
# BUG: There needs to be a small delay between the previous line and the next;
# otherwise get_windows returns an empty list.
windows = screen.get_windows()
panel = windows[1] # For example
panel_xid = panel.get_xid()
import gtk
window = gtk.Window()
window.show_all()
window.window.set_transient_for(gtk.gdk.window_foreign_new(panel_xid))
我想我只能让事情瞬态他们的父母?当我回家时,我急切地等待尝试。 如果是短暂的,那是不是意味着它是唯一可以关注的东西?或者是那种模式? – 2012-02-09 22:53:44
我对如何使用myWindow.set_transient_for(父) 如何引用lxpanel有点困惑如果我正在编写自己的面板,我可以很容易地将它设置为父 - 子关系,但是如何将myWindow成为与同一个程序无关的任何其他窗口的子进程? – 2012-02-10 01:27:56
Fruckubus Crunt:查看更新。 – 2012-02-10 12:05:24