shell: send locked_ack on re-registration when the surface is already secure
onScreenLockSecureChanged is an edge. After a sessiond restart our lock surface is already secure, so the edge is in the past and the ack owed by the new handoff was never sent — sessiond logged 'shell never confirmed its lock after handoff' and retook the lock 15s later.
This commit is contained in:
parent
4ed8f3dd74
commit
deda4a7b6b
1 changed files with 8 additions and 0 deletions
|
|
@ -126,6 +126,14 @@ Singleton {
|
||||||
// sessiond locked while we were disconnected (it
|
// sessiond locked while we were disconnected (it
|
||||||
// treats our EOF as shell death). Mirror it.
|
// treats our EOF as shell death). Mirror it.
|
||||||
GlobalStates.screenLocked = true;
|
GlobalStates.screenLocked = true;
|
||||||
|
// Our surface may ALREADY be secure from before the
|
||||||
|
// daemon restarted. onScreenLockSecureChanged is an
|
||||||
|
// edge, and that edge is in the past, so nothing
|
||||||
|
// would ever send the ack this new handoff owes —
|
||||||
|
// sessiond waits out its timer and retakes the lock
|
||||||
|
// ("shell never confirmed its lock after handoff").
|
||||||
|
if (GlobalStates.screenLockSecure)
|
||||||
|
root.sendLockedAck();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue