(Fedora 30 4.14 xfce; this arrived in the last few months as a regression. Thunar 1.8.9)
I've got a LUKS encrypted partition on my main drive; it's an padlocked icon on the main desktop.
When I click on it the, 'Enter a passphrase to unlock the volume' dialog appears.
However at that point all other windows on all desktops disappear.
The windows aren't minimised - they're still shown on the window list without [] and still appear on the workspace switcher.
They reappear if I use alt-tab to view each one.
I'm not sure where the problem is; Thunar or the window manager.
Version: 4.14.0
Designs
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Dr. Gilbert and I have been rambling on IRC about this a bit.
The passphrase window grabs input and (tries to grab) focus; I can change virtual desktops but cannot select a region outside the dialog box on the same virtual desktop.
If I use gigolo to open the crypt device, all is well - the dialog it spawns is the same as the polkit-gnome dialog (which is NOT what pops up the passphrase entry window when opening the encrypted device from the desktop icon).
If I unlock it from within Thunar itself, i.e. the sidebar, it spawns the polkit-gnome dialog and all is well.
I've built and tested this with gvfs as far back as 1.36.0, which is what I was using with Xfce 4.12; with that setup then, unlocking a crypt device did NOT cause the problem we're seeing here. However, with Xfce-4.14 and gvfs-1.36.0, the problem does exist, which makes me think that gvfs isn't the culprit here.
It seems that something changed with respect to how the new window is raised/lowered/managed/whatever in Xfce 4.14 - not sure if xfdesktop is somehow to blame, but it seems more likely to be xfwm4.
Hang on! This doesn't happen if I do it from Thunar's Devices list in a thunar window; only if I click on the desktop icon for the locked device. And if I click on the icon a 3rd time the windows all reappear.
Note it doesn't happen if I click on a non-locked device icon; that opens fine.
Yep, from inside Thunar itself, the unlock operation doesn't seem to go through gvfs. Either way, this is related to xfwm4.
After a bit of testing to narrow down where in 4.13.0-->4.14.0 this went sideways (between 4.13.1 and 4.13.2), I did a git bisect and found this:
fa9517ea is the first bad commit
commit fa9517ea
Author: Olivier Fourdan fourdan@xfce.org
Date: Fri Apr 19 23:16:40 2019 +0200
stacking: Raise all transients together [Bug 15303](https://bugzilla.xfce.org/show_bug.cgi?id=15303) Xfwm4 would raise the transients of a given window along with the parent window, to keep the transients above their parents, but would not raise the parents along with the transient windows. Rework the stacking code to raise the deepest parent of a transient being raised so that all parents window of a transient get raised along with it.
Right, both share the same client leader ID and 0x1400028 is most likely the window ID of the desktop window then.
@rworkman, that doesn't sound right, why would that dialog be transient to the desktop window, previously it would have remained hidden underneath all other windows, along with the desktop...
Well, I'm not questioning your expertise with xfwm4 - I know better. :-)
However, I've also never seen git bisect incorrectly identify a commit responsible for something. I've seen it fail to identify a commit at all, but never get one wrong (assuming correct input). I also know that xfwm4 right before that commit works fine wrt this bug, and afterward it does not. I have no idea why that is outside of it being something about that particular commit.
All that said, I'll be happy to test any potential patches or even just "change $code to $someothercode and see what happens" - that's easy to do.
No, you misunderstood, I am not saying that bisection was wrong, it is correct, the behavior is related to that feature.
Typically, it looks like the dialog is set transient to the desktop window, and when the dialog is raised, it takes the parent with it so xfdesktop ends up being raised as well.
This is certainly a case that xfwm4 should handle, but that doesn't make it a less broken case in the first place.
My fix for it in xfwm4 would be either to ignore that transient dependency altogether, or force the dialog to be on the same layer as its parent (which is what makes most sense).
The latter means that the dialog would be shown underneath all other windows along with its parent (xfdesktop) unless that (broken) transient relationship gets fixed in the client (xfdesktop, thunar, gvs, dunno).
I've poked around in xfdesktop source, and it seems like maybe it all starts with xfdesktop_volume_icon_menu_mount() in src/xfdesktop-volume-icon.c, but assuming that's the case (NOT A SAFE ASSUMPTION), I still don't see where the passphrase dialog itself is getting created (but somehow the dialog knows that it was spawned by xfdesktop). Best I can tell, the GIO stuff that's called ends up calling out to gnome-keyring-daemon for the passphrase, and the dialogs are consistent with that. Assuming that's the case, then I end up in the gnome-keyring source at gnome-keyring/daemon/dbus/gkd-secret-prompt.c and from there I'm dead in the water.
I know you're busy, Olivier, but any chance of that latter fix (forcing the dialog to be on the same layer as its parent) showing up in git any time soon?