diff options
| author | ATMDA <atdma2600@gmail.com> | 2025-11-14 17:42:49 -0500 |
|---|---|---|
| committer | ATMDA <atdma2600@gmail.com> | 2025-11-14 17:42:49 -0500 |
| commit | 45ef91998e4586dbf16c6ea3db0a9f4e19f4487e (patch) | |
| tree | 4268a84251bb975731a840c0c9ef2b9136c43625 /modules/bar/popouts/Wrapper.qml | |
| parent | controlcenter: minor tidying (capitalization and filename) (diff) | |
| download | caelestia-shell-45ef91998e4586dbf16c6ea3db0a9f4e19f4487e.tar.gz caelestia-shell-45ef91998e4586dbf16c6ea3db0a9f4e19f4487e.tar.bz2 caelestia-shell-45ef91998e4586dbf16c6ea3db0a9f4e19f4487e.zip | |
tray: wireless password input popout
Diffstat (limited to 'modules/bar/popouts/Wrapper.qml')
| -rw-r--r-- | modules/bar/popouts/Wrapper.qml | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/modules/bar/popouts/Wrapper.qml b/modules/bar/popouts/Wrapper.qml index 4be47e4..5ef4f9d 100644 --- a/modules/bar/popouts/Wrapper.qml +++ b/modules/bar/popouts/Wrapper.qml @@ -55,7 +55,25 @@ Item { implicitWidth: nonAnimWidth implicitHeight: nonAnimHeight - Keys.onEscapePressed: close() + focus: hasCurrent + Keys.onEscapePressed: { + // Forward escape to password popout if active, otherwise close + if (currentName === "wirelesspassword" && content.item) { + const passwordPopout = content.item.children.find(c => c.name === "wirelesspassword"); + if (passwordPopout && passwordPopout.item) { + passwordPopout.item.closeDialog(); + return; + } + } + close(); + } + + Keys.onPressed: event => { + // Don't intercept keys when password popout is active - let it handle them + if (currentName === "wirelesspassword") { + event.accepted = false; + } + } HyprlandFocusGrab { active: root.isDetached @@ -70,6 +88,14 @@ Item { property: "WlrLayershell.keyboardFocus" value: WlrKeyboardFocus.OnDemand } + + Binding { + when: root.hasCurrent && root.currentName === "wirelesspassword" + + target: QsWindow.window + property: "WlrLayershell.keyboardFocus" + value: WlrKeyboardFocus.OnDemand + } Comp { id: content |