After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 770163 - stacked "modal" dim does not go away
stacked "modal" dim does not go away
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.20.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2016-08-20 07:32 UTC by Mantas Mikulėnas (grawity)
Modified: 2016-09-09 15:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
windowManager: Fix windows not getting undimmed in some cases (1.63 KB, patch)
2016-08-22 15:07 UTC, Rui Matos
committed Details | Review

Description Mantas Mikulėnas (grawity) 2016-08-20 07:32:02 UTC
After using Transmission's "Set Location" context-menu item, a modal window "Set Torrent Location" appears, and the parent window dims to match.

When the location is chosen, another modal window "Moving..." appears on top of it, and the parent window is dimmed more.

When the move is finished, both modal windows automatically close, but the main window only loses one dim layer and remains dimmed. The only way to fix it is to again open "Set Location" and cancel it.

mutter & gnome-shell all the way up to 3.21-git
Comment 1 Rui Matos 2016-08-22 15:07:19 UTC
Created attachment 333914 [details] [review]
windowManager: Fix windows not getting undimmed in some cases

meta_window_foreach_transient() iterates through all transients of a
window, not only direct transients. This means that simply checking if
a transient is an attached dialog isn't enough because it might be a
non-direct transient for the window we're checking, in which case we
don't want to dim the window.

In particular this fixes windows not getting undimmed when they have
more that one level of transient children and the direct transient gets
destroyed. In that case we would still find at least one non-direct
transient child and decide to keep the window dimmed.
Comment 2 Florian Müllner 2016-09-09 11:04:17 UTC
Review of attachment 333914 [details] [review]:

LGTM
Comment 3 Rui Matos 2016-09-09 15:18:15 UTC
Attachment 333914 [details] pushed as dbd04df - windowManager: Fix windows not getting undimmed in some cases