From 458613f2d94a969c9920dfc12ed57acfca7e5916 Mon Sep 17 00:00:00 2001 From: Tim Schneeberger Date: Wed, 10 Jun 2026 23:42:07 +0200 Subject: [PATCH] Fix Switch build (#705) * Remove duplicate Switch::Init(PostInit) call. It was called multiple times, causing multiple applet hooks (that all point to the same callback address) to be registered. For some reason, the OS started spamming us with FocusUpdate events via that hook because of that. * Hide fullscreen and app data directory button on Switch --- src/port/Engine.cpp | 1 - src/port/ui/PortMenu.cpp | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp index e55022335..b6ba9a226 100644 --- a/src/port/Engine.cpp +++ b/src/port/Engine.cpp @@ -84,7 +84,6 @@ GameEngine::GameEngine() { #ifdef __SWITCH__ Ship::Switch::Init(Ship::PreInitPhase); - Ship::Switch::Init(Ship::PostInitPhase); #endif #ifdef _WIN32 diff --git a/src/port/ui/PortMenu.cpp b/src/port/ui/PortMenu.cpp index 15142be35..69e887481 100644 --- a/src/port/ui/PortMenu.cpp +++ b/src/port/ui/PortMenu.cpp @@ -97,11 +97,13 @@ void PortMenu::AddSettings() { WidgetPath path = { "Settings", "General", SECTION_COLUMN_1 }; static bool isFullscreen = false; +#ifndef __SWITCH__ AddWidget(path, "Toggle Fullscreen", WIDGET_CHECKBOX) .ValuePointer(&isFullscreen) .PreFunc([](WidgetInfo& info) { isFullscreen = Ship::Context::GetInstance()->GetWindow()->IsFullscreen(); }) .Callback([](WidgetInfo& info) { Ship::Context::GetInstance()->GetWindow()->ToggleFullscreen(); }) .Options(CheckboxOptions().Tooltip("Toggles Fullscreen On/Off.")); +#endif AddWidget(path, "Startup Behaviour", WIDGET_CVAR_COMBOBOX) .CVar("gSkipIntro") @@ -170,12 +172,14 @@ void PortMenu::AddSettings() { .CVar("gEnhancements.Mods.AlternateAssetsHotkey") .Options( CheckboxOptions().Tooltip("Allows pressing the Tab key to toggle alternate assets").DefaultValue(true)); +#ifndef __SWITCH__ AddWidget(path, "Open App Files Folder", WIDGET_BUTTON) .Callback([](WidgetInfo& info) { std::string filesPath = Ship::Context::GetInstance()->GetAppDirectoryPath(); SDL_OpenURL(std::string("file:///" + std::filesystem::absolute(filesPath).string()).c_str()); }) .Options(ButtonOptions().Tooltip("Opens the folder that contains the save and mods folders, etc.")); +#endif // Audio Settings path.sidebarName = "Audio";