diff --git a/docs/releases/v0.6.0.md b/docs/releases/v0.6.0.md index 31051e4b..f71cb412 100644 --- a/docs/releases/v0.6.0.md +++ b/docs/releases/v0.6.0.md @@ -61,6 +61,8 @@ cards). - Windows' switched mouse buttons are followed; the window opens inside the screen and fullscreen comes back when the window is raised; the game closes down properly when Windows shuts down. - A crash when the game's microphone stream could not open is gone. +- The game's window and taskbar button show Navi, and starting the game from the launcher no longer opens an empty + console window beside it. - The game keeps presenting after a failed present, and only one game runs per profile at a time. - Saves: Import Saves and Quit keep saves safe, a linked profile folder keeps working, and save writes check their sizes. diff --git a/launcher/winsys.py b/launcher/winsys.py index ae23ea5c..460a0eb5 100644 --- a/launcher/winsys.py +++ b/launcher/winsys.py @@ -150,9 +150,12 @@ def open_path(path): def start_game(exe): - """Start the game from its own folder; returns the process to watch.""" + """Start the game from its own folder; returns the process to watch. ocarina.exe is a console program and the + launcher has no console, so without CREATE_NO_WINDOW Windows opened an empty console window beside the game, + titled with the exe's path. With it the game still has a console (hidden), which its restarts inherit.""" exe = Path(exe) - flags = {'creationflags': CREATE_NEW_PROCESS_GROUP} if os.name == 'nt' else {'start_new_session': True} + flags = {'creationflags': CREATE_NO_WINDOW | CREATE_NEW_PROCESS_GROUP} if os.name == 'nt' \ + else {'start_new_session': True} return subprocess.Popen([str(exe)], cwd=str(exe.parent), stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, close_fds=True, **flags) diff --git a/runtime/nx2navi.ico b/runtime/nx2navi.ico index b6893777..16262590 100644 Binary files a/runtime/nx2navi.ico and b/runtime/nx2navi.ico differ