GNOME Bugzilla – Bug 105972
embedded apps have no way to enforce that their sub dialog windows are placed on top of the embedding application.
Last modified: 2014-03-22 20:01:48 UTC
context: i'm the maintainer of the mandrake control center (mcc), which do not use gtk+-2.2.0 directly but use perl-GTK2. the mcc can embedd tools. explanation: when these tools are embedded, their calls to set_transient_for do not work anymore despite gtk_plug inherit from gtk_window which implements it. thus mocal dialogs can go behind their parent. tested with icewm and windowmaker. proposal fix: implement plug::set_transient_for by propagating it to the embedding window
This is an issue for bonobo components as well. The only current workaround is to use XSetTransientFor() with the parent's X window ID I think. Some API to address this would be nice.
http://svn.gnome.org/viewvc/evolution/trunk/e-util/e-dialog-utils.c?revision=34537&view=markup has functions to do this. (e_dialog_set_transient_for() and e_dialog_set_transient_for_xid())
closing out old bugs