drawers: give back focus when close

For launcher and session, give back focus to previously open one on close

Also use execDetached for session buttons
This commit is contained in:
2 * r + 2 * t 2025-06-23 19:15:21 +10:00
parent 8a03505846
commit bf686b1c36
2 changed files with 14 additions and 11 deletions

View file

@ -107,7 +107,7 @@ Item {
function onLauncherChanged(): void {
if (root.visibilities.launcher)
search.forceActiveFocus();
search.focus = true;
else {
search.text = "";
const current = list.currentList;
@ -115,6 +115,11 @@ Item {
current.currentIndex = 0;
}
}
function onSessionChanged(): void {
if (root.visibilities.launcher && !root.visibilities.session)
search.focus = true;
}
}
}

View file

@ -4,7 +4,6 @@ import "root:/widgets"
import "root:/services"
import "root:/config"
import Quickshell
import Quickshell.Io
import QtQuick
Column {
@ -34,6 +33,11 @@ Column {
if (root.visibilities.session)
logout.focus = true;
}
function onLauncherChanged(): void {
if (root.visibilities.session && !root.visibilities.launcher)
logout.focus = true;
}
}
}
@ -90,22 +94,16 @@ Column {
radius: Appearance.rounding.large
color: button.activeFocus ? Colours.palette.m3secondaryContainer : Colours.palette.m3surfaceContainer
Keys.onEnterPressed: proc.startDetached()
Keys.onReturnPressed: proc.startDetached()
Keys.onEnterPressed: Quickshell.execDetached(button.command)
Keys.onReturnPressed: Quickshell.execDetached(button.command)
Keys.onEscapePressed: root.visibilities.session = false
Process {
id: proc
command: button.command
}
StateLayer {
radius: parent.radius
color: button.activeFocus ? Colours.palette.m3onSecondaryContainer : Colours.palette.m3onSurface
function onClicked(): void {
proc.startDetached();
Quickshell.execDetached(button.command);
}
}