Это поведение контролируется вашим оконным менеджером, и вы не можете ничего с этим поделать.
(В моем тестировании кажется, что Xfwm4 и Fluxbox помещают окна над окнами над окнами док-станции, несмотря на то, что EWMH рекомендует , но, возможно, ваш WM этого не делает.)
Однако существует очень ограниченный обходной путь: если вы предполагаете, что у пользователя никогда не будет более одной док-станции / панели, вы можете установить для этого окна значение transient для этого окна док-станции. Обычно (опять же, в зависимости от оконного менеджера) это будет держать ваше окно над окном док-станции.
Обновление: В X11 вы можете установить переходные окна, даже если они не находятся в одном процессе. Самый простой способ, который я нашел, это использовать libwnck для получения XID окна панели, а затем импортировать его в GDK, используя gdk_window_foreign_new . Конечно, это не будет работать в не-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))