lightbox: Show the actor before easing it

As per clutter optimizations in should_skip_implicit_transition() any
transition will be ignored if applied to an actor with unmapped clones.

Since we initialize the lightbox as hidden, when we use it standalone (as it
happens for the long fade in screenShield) the transition will be ignored.
This causes the lockscreen fade-out after the idle delay not to work, but
instead to have an apparently locked system that is instead not locked at
all.

So, just ensure that the lightbox actor is visible before applying to it any
transition.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1683
This commit is contained in:
Marco Trevisan (Treviño) 2019-10-03 15:13:21 +02:00
parent 6a6d66486d
commit 92c0171aeb

View File

@ -185,6 +185,8 @@ var Lightbox = class Lightbox {
this.emit('shown'); this.emit('shown');
}; };
this.actor.show();
if (this._radialEffect) { if (this._radialEffect) {
this.actor.ease_property( this.actor.ease_property(
'@effects.radial.brightness', VIGNETTE_BRIGHTNESS, easeProps); '@effects.radial.brightness', VIGNETTE_BRIGHTNESS, easeProps);
@ -197,8 +199,6 @@ var Lightbox = class Lightbox {
onComplete onComplete
})); }));
} }
this.actor.show();
} }
hide(fadeOutTime) { hide(fadeOutTime) {