diff --git a/.changeset/ten-heads-melt.md b/.changeset/ten-heads-melt.md new file mode 100644 index 0000000..93c6bfc --- /dev/null +++ b/.changeset/ten-heads-melt.md @@ -0,0 +1,5 @@ +--- +'intrepid-ibex': minor +--- + +remove about computer from welcome diff --git a/.changeset/wet-wolves-lick.md b/.changeset/wet-wolves-lick.md new file mode 100644 index 0000000..4efd96e --- /dev/null +++ b/.changeset/wet-wolves-lick.md @@ -0,0 +1,5 @@ +--- +'intrepid-ibex': minor +--- + +allow resetting of window position diff --git a/src/lib/components/AppWindow.svelte b/src/lib/components/AppWindow.svelte index 597caab..ec0ad5c 100644 --- a/src/lib/components/AppWindow.svelte +++ b/src/lib/components/AppWindow.svelte @@ -59,18 +59,29 @@ onMount(() => { if (!browser || !storageKey) return; + const resetStoredGeometry = () => { + x = 0; + y = 0; + width = null; + height = null; + }; + + window.addEventListener('intrepid-ibex:reset-window-geometry', resetStoredGeometry); + const storedGeometry = localStorage.getItem(storageKey); - if (!storedGeometry) return; - - try { - const geometry = JSON.parse(storedGeometry) as { x?: number; y?: number; width?: number; height?: number }; - x = typeof geometry.x === 'number' ? geometry.x : 0; - y = typeof geometry.y === 'number' ? geometry.y : 0; - width = typeof geometry.width === 'number' ? geometry.width : null; - height = typeof geometry.height === 'number' ? geometry.height : null; - } catch { - localStorage.removeItem(storageKey); + if (storedGeometry) { + try { + const geometry = JSON.parse(storedGeometry) as { x?: number; y?: number; width?: number; height?: number }; + x = typeof geometry.x === 'number' ? geometry.x : 0; + y = typeof geometry.y === 'number' ? geometry.y : 0; + width = typeof geometry.width === 'number' ? geometry.width : null; + height = typeof geometry.height === 'number' ? geometry.height : null; + } catch { + localStorage.removeItem(storageKey); + } } + + return () => window.removeEventListener('intrepid-ibex:reset-window-geometry', resetStoredGeometry); }); function startDrag(event: PointerEvent) { diff --git a/src/lib/components/GnomeTray.svelte b/src/lib/components/GnomeTray.svelte index 63e8099..7d90da2 100644 --- a/src/lib/components/GnomeTray.svelte +++ b/src/lib/components/GnomeTray.svelte @@ -47,6 +47,18 @@ startupSound.setMuted(target.checked); } + + function resetWindowGeometry() { + const geometryKeyPrefix = 'intrepid-ibex:window-geometry:'; + + for (const key of Object.keys(localStorage)) { + if (key.startsWith(geometryKeyPrefix)) { + localStorage.removeItem(key); + } + } + + window.dispatchEvent(new Event('intrepid-ibex:reset-window-geometry')); + }