From 730cb08acf1c46e3e94f8ac725f7ee2606ac6959 Mon Sep 17 00:00:00 2001 From: Miku AuahDark Date: Fri, 18 Mar 2022 10:30:31 +0800 Subject: [PATCH] Minor fix to love.localechanged callback. Wrong callback placement. --- src/modules/event/sdl/Event.cpp | 10 +++++-- src/modules/system/sdl/System.cpp | 48 +++++++++++++++---------------- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index 60e68a36f..dae96456e 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -35,6 +35,8 @@ #include +#include + namespace love { namespace event @@ -433,6 +435,11 @@ Message *Event::convert(const SDL_Event &e) case SDL_APP_LOWMEMORY: msg = new Message("lowmemory"); break; +#if SDL_VERSION_ATLEAST(2, 0, 14) + case SDL_LOCALECHANGED: + msg = new Message("localechanged"); + break; +#endif default: break; } @@ -551,9 +558,6 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const msg = new Message("joystickremoved", vargs); } break; - case SDL_LOCALECHANGED: - msg = new Message("localechanged"); - break; default: break; } diff --git a/src/modules/system/sdl/System.cpp b/src/modules/system/sdl/System.cpp index 623289c04..df0c476cf 100644 --- a/src/modules/system/sdl/System.cpp +++ b/src/modules/system/sdl/System.cpp @@ -90,30 +90,30 @@ love::system::System::PowerState System::getPowerInfo(int &seconds, int &percent powerStates.find(sdlstate, state); return state; -} - -std::vector System::getPreferredLocales() const -{ - std::vector result; - -#if SDL_VERSION_ATLEAST(2, 0, 14) - SDL_Locale *locales = SDL_GetPreferredLocales(); - - if (locales) - { - for (SDL_Locale* locale = locales; locale->language != nullptr; locale++) - { - if (locale->country) - result.push_back(std::string(locale->language) + "_" + std::string(locale->country)); - else - result.push_back(locale->language); - } - - SDL_free(locales); - } -#endif - - return result; +} + +std::vector System::getPreferredLocales() const +{ + std::vector result; + +#if SDL_VERSION_ATLEAST(2, 0, 14) + SDL_Locale *locales = SDL_GetPreferredLocales(); + + if (locales) + { + for (SDL_Locale* locale = locales; locale->language != nullptr; locale++) + { + if (locale->country) + result.push_back(std::string(locale->language) + "_" + std::string(locale->country)); + else + result.push_back(locale->language); + } + + SDL_free(locales); + } +#endif + + return result; } EnumMap::Entry System::powerEntries[] =