fix(launcher/sessionProvider): executeAction was broken due to panel content being unloaded before the action could run

This commit is contained in:
Lemmy
2026-03-06 08:33:44 -05:00
parent cd0da159ce
commit 072eb6d056
@@ -153,45 +153,42 @@ Item {
if (launcher)
launcher.close();
// Execute via Qt.callLater, but reference only singletons
// (root may be destroyed after launcher.close() unloads the panel)
Qt.callLater(() => {
executeAction(action);
switch (action) {
case "lock":
if (PanelService.lockScreen && !PanelService.lockScreen.active) {
PanelService.lockScreen.active = true;
}
break;
case "suspend":
if (Settings.data.general.lockOnSuspend) {
CompositorService.lockAndSuspend();
} else {
CompositorService.suspend();
}
break;
case "hibernate":
CompositorService.hibernate();
break;
case "reboot":
CompositorService.reboot();
break;
case "rebootToUefi":
CompositorService.rebootToUefi();
break;
case "userspaceReboot":
CompositorService.userspaceReboot();
break;
case "logout":
CompositorService.logout();
break;
case "shutdown":
CompositorService.shutdown();
break;
}
});
};
}
function executeAction(action) {
// Default behavior or custom command handled by CompositorService
switch (action) {
case "lock":
if (PanelService.lockScreen && !PanelService.lockScreen.active) {
PanelService.lockScreen.active = true;
}
break;
case "suspend":
if (Settings.data.general.lockOnSuspend) {
CompositorService.lockAndSuspend();
} else {
CompositorService.suspend();
}
break;
case "hibernate":
CompositorService.hibernate();
break;
case "reboot":
CompositorService.reboot();
break;
case "rebootToUefi":
CompositorService.rebootToUefi();
break;
case "userspaceReboot":
CompositorService.userspaceReboot();
break;
case "logout":
CompositorService.logout();
break;
case "shutdown":
CompositorService.shutdown();
break;
}
}
}