mirror of
https://github.com/HeyPuter/puter.git
synced 2026-10-06 03:42:15 +00:00
An app launched by another app minimizes its launcher (iOS-style takeover). Closing the child then popped onto the launcher's history entry, and the popstate handler restored it — so quitting an app threw the user into a different full-screen app they had not asked for, zoom animation and all. Closing an app should go home. Mark the launcher when it is minimized FOR a child (data-minimized_for_child). If it still carries that mark when the child closes, the close's single history hop lands on the dashboard instead: the entry is rewritten to the dashboard's route and the launcher is left minimized, still running behind its tile's running dot. No extra history traversal — the joint session history an app's iframe shares is exactly what pop_dashboard_app_url's watchdog exists to survive, so the hop count is unchanged. Back is untouched and still returns to the launcher — that is the navigation gesture, whereas close dismisses. Any restore (Back, tile click, Forward) clears the mark, so quitting a child after the user has brought the launcher back leaves the launcher alone.