Watch
1
0
Fork
You've already forked souveraine
0

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:
Fimeg 2026-07-27 21:30:38 -04:00
commit deda4a7b6b

View file

@ -126,6 +126,14 @@ Singleton {
// sessiond locked while we were disconnected (it
// treats our EOF as shell death). Mirror it.
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();
}
});
}