GNOME Bugzilla – Bug 749383
window-list: after unlocking computer, even if active app is fullscreen, window-list is showing
Last modified: 2015-05-21 12:01:02 UTC
Problem: The window-list extension is showing even if the app is fullscreen if it's the active window after successfully unlocking the computer. Steps to reproduce: 1. Fullscreen any app (e.g. Firefox). 2. Lock the computer (e.g. Super+L). 3. Unlock the computer. Expected Result: Firefox is fullscreen with no window-list at the bottom. Actual Result: The window-list is showing.
Environment: F21, 3.19.5-200 $ rpm -qa | grep gnome-shell gnome-shell-extension-background-logo-3.14.0-2.fc21.noarch gnome-shell-extension-launch-new-instance-3.14.4-1.fc21.noarch gnome-shell-extension-common-3.14.4-1.fc21.noarch gnome-shell-extension-alternate-tab-3.14.4-1.fc21.noarch gnome-shell-extension-user-theme-3.14.4-1.fc21.noarch gnome-shell-3.14.4-2.fc21.x86_64 gnome-shell-extension-places-menu-3.14.4-1.fc21.noarch gnome-shell-extension-apps-menu-3.14.4-1.fc21.noarch gnome-shell-extension-window-list-3.14.4-1.fc21.noarch
Created attachment 303382 [details] [review] layout: Set initial visibility of fullscreen-tracking chrome When chrome is added with the trackFullscreen parameter, the actor's visibility will be updated automatically whenever its monitor's fullscreen state changes. However as we currently ignore the fullscreen state at the time the chrome is added, the initial visibility may well be incorrect - fix this by updating the initial visibility as necessary.
(In reply to Florian Müllner from comment #2) > Created attachment 303382 [details] [review] [review] > layout: Set initial visibility of fullscreen-tracking chrome Thanks for the quick patch! Do I need to rebuild the extension to use this, or is there a layout.js file I can apply it to?
(In reply to jleb.git from comment #3) > (In reply to Florian Müllner from comment #2) > Do I need to rebuild the extension to use this, > or is there a layout.js file I can apply it to? The fix is for gnome-shell itself, not the extension. As the javascript sources are now compiled into the gnome-shell executable, the file is not readily available. However you can still test the patch if you follow the instructions in https://blogs.gnome.org/mclasen/2014/03/24/keeping-gnome-shell-approachable/.
Review of attachment 303382 [details] [review]: makes sense
Review of attachment 303382 [details] [review]: ::: js/ui/layout.js @@ +839,3 @@ this._trackedActors.push(actorData); + if (actorData.trackFullscreen && this.monitors.length) + this._updateVisibility(); Wait. This will iterate all this._trackedActors list for each actor we add. Perhaps factor out a method to update the visibility of a single tracked actor out of _updateVisibility() and use both here and there?
Created attachment 303750 [details] [review] layout: Set initial visibility of fullscreen-tracking chrome (In reply to Rui Matos from comment #6) > Wait. This will iterate all this._trackedActors list for each actor we add. Yeah, I originally just used the monitor.inFullscreen check which wasn't quite accurate, and then got lazy - it's not that bad actually, considering that the iteration is only done for actors that track fullscreen (and only after monitors are initialized), so gnome-shell proper doesn't hit this code path at all. But that's not a good excuse for being lazy, so yeah, let's refactor this a bit ...
Review of attachment 303750 [details] [review]: all good
Attachment 303750 [details] pushed as dc4b8c8 - layout: Set initial visibility of fullscreen-tracking chrome