ScreenShield: clear the lock screen early when deactivating
Upon popMode, MessageTray will try readding all notifications to their rightful parent, so we must tell NotificationBox to relinquish them before st_bin_set_child() fails (leaving a dangling child pointer and crashing at the next allocation) https://bugzilla.gnome.org/show_bug.cgi?id=698812
This commit is contained in:
parent
c864ebeabb
commit
61fe000daa
@ -1115,6 +1115,9 @@ const ScreenShield = new Lang.Class({
|
|||||||
deactivate: function(animate) {
|
deactivate: function(animate) {
|
||||||
this._hideLockScreen(animate, 0);
|
this._hideLockScreen(animate, 0);
|
||||||
|
|
||||||
|
if (this._hasLockScreen)
|
||||||
|
this._clearLockScreen();
|
||||||
|
|
||||||
if (Main.sessionMode.currentMode == 'lock-screen')
|
if (Main.sessionMode.currentMode == 'lock-screen')
|
||||||
Main.sessionMode.popMode('lock-screen');
|
Main.sessionMode.popMode('lock-screen');
|
||||||
if (Main.sessionMode.currentMode == 'unlock-dialog')
|
if (Main.sessionMode.currentMode == 'unlock-dialog')
|
||||||
@ -1131,9 +1134,6 @@ const ScreenShield = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_completeDeactivate: function() {
|
_completeDeactivate: function() {
|
||||||
if (this._hasLockScreen)
|
|
||||||
this._clearLockScreen();
|
|
||||||
|
|
||||||
if (this._dialog && !this._isGreeter) {
|
if (this._dialog && !this._isGreeter) {
|
||||||
this._dialog.destroy();
|
this._dialog.destroy();
|
||||||
this._dialog = null;
|
this._dialog = null;
|
||||||
|
Loading…
Reference in New Issue
Block a user