Compare commits

...
Author SHA1 Message Date
Damocles
9f0043cd23 lock: aggressively reclaim keyboard focus on lock surface 2026-04-17 14:12:40 +02:00
Damocles
032035b7f1 lock: add glib to PATH for gdbus 2026-04-17 14:03:40 +02:00
2 changed files with 20 additions and 2 deletions

View file

@ -139,14 +139,26 @@ WlSessionLockSurface {
} }
} }
// Keyboard input - focus lives on an Item since WlSessionLockSurface is a window // Keyboard input - focus lives on an Item since WlSessionLockSurface is a window.
// Aggressively reclaim focus: Component.onCompleted may fire before the surface
// is configured, and other items can steal activeFocus during layout.
Item { Item {
id: _keyInput
anchors.fill: parent anchors.fill: parent
focus: true focus: true
Keys.onPressed: event => { Keys.onPressed: event => {
if (!root._unlocking) if (!root._unlocking)
root.auth.handleKey(event); root.auth.handleKey(event);
} }
onActiveFocusChanged: {
if (!activeFocus)
forceActiveFocus();
}
}
onVisibleChanged: {
if (visible)
_keyInput.forceActiveFocus();
} }
// Unlock animation // Unlock animation

View file

@ -5,6 +5,7 @@
quickshell, quickshell,
qt6, qt6,
nova-stats, nova-stats,
glib,
}: }:
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation {
pname = "nova-shell"; pname = "nova-shell";
@ -34,7 +35,12 @@ stdenvNoCC.mkDerivation {
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${lib.getExe quickshell} $out/bin/nova-shell \ makeWrapper ${lib.getExe quickshell} $out/bin/nova-shell \
--add-flags "-p $out/share/nova-shell/shell.qml" \ --add-flags "-p $out/share/nova-shell/shell.qml" \
--prefix PATH : ${lib.makeBinPath [ nova-stats ]} --prefix PATH : ${
lib.makeBinPath [
nova-stats
glib
]
}
runHook postInstall runHook postInstall
''; '';