shell: locking closes the keyboard, and unlocking does not bring it back
The hold machinery remembers whether the keyboard was up when the first hold was taken, so releasing the last hold restores rather than clobbers it. Across a lock that restore is wrong: the keyboard was up because of something being typed before the phone went down, and the first thing you see on unlocking is a keyboard sitting over whatever you came back for. Intent to type does not survive the screen going away. Anything that still wants the keyboard — a field taking focus again — asks for it, on the path that already works.
This commit is contained in:
parent
cc4bb83573
commit
914e48f2d3
1 changed files with 19 additions and 0 deletions
|
|
@ -88,6 +88,25 @@ Singleton {
|
|||
root.oskHolds = [];
|
||||
root.oskHoldRestoreOpen = false;
|
||||
}
|
||||
|
||||
// Locking closes the keyboard, and unlocking does not bring it back.
|
||||
//
|
||||
// `oskHoldRestoreOpen` remembers whether the keyboard was up when the
|
||||
// first hold was taken, so releasing the last hold restores rather than
|
||||
// clobbers it. Across a lock that restore is wrong: the keyboard was up
|
||||
// because of something the user was typing into before they put the phone
|
||||
// down, and the first thing they see on unlocking is a keyboard over
|
||||
// whatever they actually came back for.
|
||||
//
|
||||
// Intent to type does not survive the screen going away. Anything that
|
||||
// still wants the keyboard — a field taking focus again — will ask for it,
|
||||
// which is the path that already works.
|
||||
onScreenLockedChanged: {
|
||||
if (!root.screenLocked) return;
|
||||
root.oskHolds = [];
|
||||
root.oskHoldRestoreOpen = false;
|
||||
root.oskOpen = false;
|
||||
}
|
||||
// WRITER: ii overlay module
|
||||
property bool overlayOpen: false
|
||||
// WRITER: ii overview module + Dock.qml IPC
|
||||
|
|
|
|||
Loading…
Reference in a new issue