GNOME Bugzilla – Bug 91023
Modal window under an other window
Last modified: 2014-03-22 22:06:34 UTC
Suppose that A is the main application window, B is a non-modal dialog transient for A (e.g. a find dialog), and we call modal dialog C (transient for A). Now we can bring (by a mouse click) B above C what is wrong (as B does not work because C is modal). Two possible solutions are: 1. Leave GTK as is and let the programmer will manually set C transient for B. It isn't good as is error-prone (easily to forget) and a programmer should add setting transiency for every new non-modal dialog. 2. When we run a modal dialog C, which is transient for a window A, automatically make it also transient for every window which is transient for A (except from C itself). It seems to be a good solution and will most probably break no existing code compatibility.
You can only set one transient parent though.
MWM, I believe had an "Application modal" flag as well as a "System modal" flag that could be put on a dialog - I suppose we could get something like this added to the NET WM spec and have GTK+ set it on the modal dialog that currently has the active GTK+ grab. Then the window manager could be smarter about stacking order. I don't think this problem is solveable in GTK+ alone. This should be brought up on wm-spec-list@gnome.org
There is already a MODAL state hint in the WM spec - I think it's intended to be application modal. I don't think we have a hint for system modal, other than the old Motif one.
Cool, then we just need to implement the set-modal-on-current-modal-dialog feature, and then I can reassign this bug to metacity :-)
closing out old bugs