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
This commit is contained in:
Tim Schneeberger
2026-06-10 23:42:07 +02:00
committed by GitHub
parent efdaf9d8fd
commit 458613f2d9
2 changed files with 4 additions and 1 deletions
-1
View File
@@ -84,7 +84,6 @@ GameEngine::GameEngine() {
#ifdef __SWITCH__
Ship::Switch::Init(Ship::PreInitPhase);
Ship::Switch::Init(Ship::PostInitPhase);
#endif
#ifdef _WIN32
+4
View File
@@ -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";