screenShield: Don't hide windows until we've fully locked the shield
Revert the commit that ties hasWindows to the session mode, as we need to do the "transition" manually. Instead, show/hide the sessionGroup ourselves. For optimization purposes, we also need to hide the window groups when in the overview. Ideally, these would be culled out by Clutter, but they are not from experimentation.
This commit is contained in:
parent
427f516d45
commit
a7d7f94892
@ -280,6 +280,9 @@ const LayoutManager = new Lang.Class({
|
||||
this._inOverview = true;
|
||||
this._updateVisibility();
|
||||
this._updateRegions();
|
||||
|
||||
global.window_group.hide();
|
||||
global.top_window_group.hide();
|
||||
},
|
||||
|
||||
hideOverview: function() {
|
||||
@ -288,6 +291,9 @@ const LayoutManager = new Lang.Class({
|
||||
this._inOverview = false;
|
||||
this._updateVisibility();
|
||||
this._queueUpdateRegions();
|
||||
|
||||
global.window_group.show();
|
||||
global.top_window_group.show();
|
||||
},
|
||||
|
||||
_sessionUpdated: function() {
|
||||
@ -858,9 +864,6 @@ const LayoutManager = new Lang.Class({
|
||||
_updateVisibility: function() {
|
||||
let windowsVisible = Main.sessionMode.hasWindows && !this._inOverview;
|
||||
|
||||
global.window_group.visible = windowsVisible;
|
||||
global.top_window_group.visible = windowsVisible;
|
||||
|
||||
for (let i = 0; i < this._trackedActors.length; i++) {
|
||||
let actorData = this._trackedActors[i], visible;
|
||||
if (!actorData.trackFullscreen)
|
||||
|
@ -1008,6 +1008,7 @@ const ScreenShield = new Lang.Class({
|
||||
return;
|
||||
|
||||
this._ensureLockScreen();
|
||||
this._lockDialogGroup.hide();
|
||||
this._lockDialogGroup.scale_x = 1;
|
||||
this._lockDialogGroup.scale_y = 1;
|
||||
|
||||
@ -1106,8 +1107,10 @@ const ScreenShield = new Lang.Class({
|
||||
}));
|
||||
this._cursorTracker.set_pointer_visible(false);
|
||||
|
||||
this._lockScreenState = MessageTray.State.SHOWN;
|
||||
this._lockDialogGroup.show();
|
||||
this._lockScreenGroup.fixed_position_set = false;
|
||||
this._lockScreenState = MessageTray.State.SHOWN;
|
||||
Main.layoutManager.sessionGroup.hide();
|
||||
this._lockScreenScrollCounter = 0;
|
||||
|
||||
if (params.fadeToBlack && params.animateFade) {
|
||||
@ -1234,6 +1237,7 @@ const ScreenShield = new Lang.Class({
|
||||
this._isModal = false;
|
||||
}
|
||||
|
||||
Main.layoutManager.sessionGroup.show();
|
||||
Tweener.addTween(this._lockDialogGroup, {
|
||||
scale_x: 0,
|
||||
scale_y: 0,
|
||||
|
Loading…
x
Reference in New Issue
Block a user