GNOME Bugzilla – Bug 641432
multiprocess modal dialogs don't disable parent
Last modified: 2015-02-27 02:55:02 UTC
The code in gnome-settings-daemon to ask for user confirmation: http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/xrandr/gsd-xrandr-manager.c#n520 isn't modal anymore in gnome-shell. The parent dialogue is still clickable, and usable, even though the modal dialogue isn't dismissed yet.
This can't have anything to do with the shell - whether the parent dialog is clickable or not is completely a GTK+ thing.
OK, reassigning to GTK+ then.
Without looking, guess is that the widget type hint isn't DIALOG. I've seen this before. Glade doesn't set the hint by default for dialogs.
(In reply to comment #3) > Without looking, guess is that the widget type hint isn't DIALOG. I've seen > this before. Glade doesn't set the hint by default for dialogs. The dialog is create with gtk_message_dialog_new(), so this shouldn't matter (and if GTK+ fails to set the type hint, then it's still a GTK+ bug).
Created attachment 180121 [details] testmodal.c Here is a small testcase that works fine. Are you certain that you actually have a window and set it as transient parent there ?
Created attachment 180127 [details] parented dialogue
(In reply to comment #5) > Created an attachment (id=180121) [details] > testmodal.c > > Here is a small testcase that works fine. > Are you certain that you actually have a window and set it as transient parent > there ? Given that gnome-shell makes the dialogue appear as a sheet over the shell window, yes.
Your test case works, it might be confused when the dialogue is from another process. I'll try and make a test case for it.
if it is between different processes, then GTK+ is not involved.
(In reply to comment #9) > if it is between different processes, then GTK+ is not involved. Panel is in gnome-control-center and the dialogue in gnome-settings-daemon. Reassigning to gnome-shell, hopefully Owen will let me know whether it can have anything to do with the shell (or mutter).
Silly question, but... have you checked it also happens with Metacity?
(In reply to comment #10) > (In reply to comment #9) > > if it is between different processes, then GTK+ is not involved. > > Panel is in gnome-control-center and the dialogue in gnome-settings-daemon. > Reassigning to gnome-shell, hopefully Owen will let me know whether it can have > anything to do with the shell (or mutter). You are expecting something to happen that there is no code anywhere in the system to make happen. * Placing the window as a sheet is handled by the window manager, based upon hints set on the window. * Disabling the parent window is handled in GTK+ - when you show a modal dialog, GTK+ does a gtk_grab_add(). If some other process is showing a "modal" dialog with the parent set to GTK+'s window, GTK+ will get no notification and have no idea it should do anything.
Matthias - since you consider this 3.0 target, what component should it be reassigned to? There's nothing that Mutter can do here (well, without heroic unmotivated measures like putting an input-only window over the parent window of a dialog with the modal hint that.)
CANTFIX would be handy here ...