ScreenShield: emit lock-status-changed at the end of animation for manual locking too
gnome-settings-daemon uses lock-status-changed/ActiveChanged to drive screen blanking, so must wait for the animation end before emitting it. https://bugzilla.gnome.org/show_bug.cgi?id=691964
This commit is contained in:
parent
9a25224890
commit
7ad881d0ec
@ -951,6 +951,12 @@ const ScreenShield = new Lang.Class({
|
||||
this._lockScreenGroup.fixed_position_set = false;
|
||||
this._lockScreenScrollCounter = 0;
|
||||
|
||||
let prevIsActive = this._isActive;
|
||||
this._isActive = true;
|
||||
|
||||
if (prevIsActive != this._isActive)
|
||||
this.emit('lock-status-changed');
|
||||
|
||||
this.emit('lock-screen-shown');
|
||||
},
|
||||
|
||||
@ -1078,8 +1084,16 @@ const ScreenShield = new Lang.Class({
|
||||
|
||||
this._resetLockScreen(animate, animate);
|
||||
|
||||
this._isActive = true;
|
||||
this.emit('lock-status-changed');
|
||||
// We used to set isActive and emit lock-status-changed here,
|
||||
// but now we do that from lockScreenShown, which means
|
||||
// there is a 0.3 seconds window during which the lock
|
||||
// screen is effectively visible and the screen is locked, but
|
||||
// the DBus interface reports the screensaver is off.
|
||||
// This is because when we emit ActiveChanged(true),
|
||||
// gnome-settings-daemon blanks the screen, and we don't want
|
||||
// blank during the animation.
|
||||
// This is not a problem for the idle fade case, because we
|
||||
// activate without animation in that case.
|
||||
},
|
||||
|
||||
lock: function(animate) {
|
||||
|
Loading…
Reference in New Issue
Block a user