From a9cd83c6f9833e0dbae7aa3bb5359c10f5767428 Mon Sep 17 00:00:00 2001 From: florencio Date: Tue, 31 Dec 2024 13:53:01 -0700 Subject: [PATCH] added hidehomeindicator in love.conf for iOS --- src/modules/love/boot.lua | 2 ++ src/modules/window/Window.cpp | 1 + src/modules/window/Window.h | 2 ++ src/modules/window/sdl/Window.cpp | 5 +++++ src/modules/window/wrap_Window.cpp | 8 ++++++++ 5 files changed, 18 insertions(+) diff --git a/src/modules/love/boot.lua b/src/modules/love/boot.lua index f9b08cfbb..c2959a412 100644 --- a/src/modules/love/boot.lua +++ b/src/modules/love/boot.lua @@ -180,6 +180,7 @@ function love.init() resizable = false, centered = true, usedpiscale = true, + hidehomeindicator = "0", }, graphics = { gammacorrect = false, @@ -401,6 +402,7 @@ function love.init() display = c.window.display, -- deprecated highdpi = c.window.highdpi, -- deprecated usedpiscale = c.window.usedpiscale, + hidehomeindicator = c.window.hidehomeindicator, x = c.window.x, y = c.window.y, }), "Could not set window mode") diff --git a/src/modules/window/Window.cpp b/src/modules/window/Window.cpp index 15f949cc1..438fd0aa2 100644 --- a/src/modules/window/Window.cpp +++ b/src/modules/window/Window.cpp @@ -73,6 +73,7 @@ STRINGMAP_CLASS_BEGIN(Window, Window::Setting, Window::SETTING_MAX_ENUM, setting {"display", Window::SETTING_DISPLAY}, {"highdpi", Window::SETTING_HIGHDPI}, {"usedpiscale", Window::SETTING_USE_DPISCALE}, + {"hidehomeindicator", Window::SETTING_HIDEHOMEINDICATOR}, {"refreshrate", Window::SETTING_REFRESHRATE}, {"x", Window::SETTING_X}, {"y", Window::SETTING_Y}, diff --git a/src/modules/window/Window.h b/src/modules/window/Window.h index 5586645dd..ea20abf0f 100644 --- a/src/modules/window/Window.h +++ b/src/modules/window/Window.h @@ -75,6 +75,7 @@ class Window : public Module SETTING_DISPLAY, // Deprecated SETTING_HIGHDPI, // Deprecated SETTING_USE_DPISCALE, + SETTING_HIDEHOMEINDICATOR, SETTING_REFRESHRATE, SETTING_X, SETTING_Y, @@ -279,6 +280,7 @@ struct WindowSettings bool centered = true; int displayindex = 0; bool usedpiscale = true; + char *hidehomeindicator = "0"; double refreshrate = 0.0; bool useposition = false; int x = 0; diff --git a/src/modules/window/sdl/Window.cpp b/src/modules/window/sdl/Window.cpp index 3c252cdd5..8de31080e 100644 --- a/src/modules/window/sdl/Window.cpp +++ b/src/modules/window/sdl/Window.cpp @@ -569,6 +569,9 @@ bool Window::setWindow(int width, int height, WindowSettings *settings) } } + if (f.hidehomeindicator) + SDL_SetHint(SDL_HINT_IOS_HIDE_HOME_INDICATOR, f.hidehomeindicator); + bool needsetmode = false; if (renderer != windowRenderer && isOpen()) @@ -761,6 +764,8 @@ void Window::updateSettings(const WindowSettings &newsettings, bool updateGraphi settings.usedpiscale = newsettings.usedpiscale; + settings.hidehomeindicator = newsettings.hidehomeindicator; + // Only minimize on focus loss if the window is in exclusive-fullscreen mode if (settings.fullscreen && settings.fstype == FULLSCREEN_EXCLUSIVE) SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "1"); diff --git a/src/modules/window/wrap_Window.cpp b/src/modules/window/wrap_Window.cpp index 091d6d2f3..0e0e3af67 100644 --- a/src/modules/window/wrap_Window.cpp +++ b/src/modules/window/wrap_Window.cpp @@ -76,6 +76,11 @@ static int readWindowSettings(lua_State *L, int idx, WindowSettings &settings) settings.centered = luax_boolflag(L, idx, settingName(Window::SETTING_CENTERED), settings.centered); settings.usedpiscale = luax_boolflag(L, idx, settingName(Window::SETTING_USE_DPISCALE), settings.usedpiscale); + lua_getfield(L, idx, settingName(Window::SETTING_HIDEHOMEINDICATOR)); + if (!lua_isnoneornil(L, -1)) + settings.hidehomeindicator = (char *) lua_tostring(L, -1); + lua_pop(L, 1); + lua_getfield(L, idx, settingName(Window::SETTING_DEPTH)); if (lua_type(L, -1) == LUA_TNUMBER) { @@ -232,6 +237,9 @@ int w_getMode(lua_State *L) luax_pushboolean(L, settings.usedpiscale); lua_setfield(L, -2, settingName(Window::SETTING_USE_DPISCALE)); + lua_pushstring(L, settings.hidehomeindicator); + lua_setfield(L, -2, settingName(Window::SETTING_HIDEHOMEINDICATOR)); + lua_pushnumber(L, settings.refreshrate); lua_setfield(L, -2, settingName(Window::SETTING_REFRESHRATE));