diff --git a/public/assets/desktop/desktop.css b/public/assets/desktop/desktop.css index 054fe8ca..f6b392c3 100644 --- a/public/assets/desktop/desktop.css +++ b/public/assets/desktop/desktop.css @@ -322,6 +322,10 @@ h1 { backdrop-filter: blur(24px); } +.start-menu[hidden] { + display: none !important; +} + .start-menu-header { display: flex; align-items: flex-start; diff --git a/public/assets/desktop/desktop.js b/public/assets/desktop/desktop.js index d79effc2..15ae7a21 100644 --- a/public/assets/desktop/desktop.js +++ b/public/assets/desktop/desktop.js @@ -16,6 +16,20 @@ if (payloadNode) { const activeWidgets = new Set(payload.widgets.active_ids); let zIndex = 20; + const setStartMenuOpen = (isOpen) => { + if (!startMenu) { + return; + } + + if (isOpen) { + startMenu.removeAttribute('hidden'); + } else { + startMenu.setAttribute('hidden', 'hidden'); + } + + startButton?.setAttribute('aria-expanded', String(isOpen)); + }; + const renderClock = () => { if (!clockNode) { return; @@ -47,12 +61,7 @@ if (payloadNode) { }; const closeStartMenu = () => { - if (!startMenu) { - return; - } - - startMenu.hidden = true; - startButton?.setAttribute('aria-expanded', 'false'); + setStartMenuOpen(false); }; const applyWindowLayout = (record) => { @@ -433,13 +442,13 @@ if (payloadNode) { return; } - const willOpen = startMenu.hidden; - startMenu.hidden = !willOpen; - startButton.setAttribute('aria-expanded', String(willOpen)); + const isClosed = startMenu.hasAttribute('hidden'); + setStartMenuOpen(isClosed); }); renderWidgets(); renderStartMenu(); + setStartMenuOpen(false); payload.windows.forEach(createWindow); renderClock(); window.setInterval(renderClock, 1000);