diff --git a/src/modules/window/Window.h b/src/modules/window/Window.h index 01f2124d9..fc86b645d 100644 --- a/src/modules/window/Window.h +++ b/src/modules/window/Window.h @@ -141,6 +141,7 @@ public: virtual love::image::ImageData *getIcon() = 0; virtual void minimize() = 0; + virtual void maximize() = 0; // default no-op implementation virtual void swapBuffers(); diff --git a/src/modules/window/sdl/Window.cpp b/src/modules/window/sdl/Window.cpp index 94eb593fc..451d29e16 100644 --- a/src/modules/window/sdl/Window.cpp +++ b/src/modules/window/sdl/Window.cpp @@ -664,6 +664,12 @@ void Window::minimize() SDL_MinimizeWindow(window); } +void Window::maximize() +{ + if (window != nullptr) + SDL_MaximizeWindow(window); +} + void Window::swapBuffers() { SDL_GL_SwapWindow(window); diff --git a/src/modules/window/sdl/Window.h b/src/modules/window/sdl/Window.h index 9cb8e6780..a36be3d87 100644 --- a/src/modules/window/sdl/Window.h +++ b/src/modules/window/sdl/Window.h @@ -72,6 +72,7 @@ public: love::image::ImageData *getIcon(); void minimize(); + void maximize(); void swapBuffers(); diff --git a/src/modules/window/wrap_Window.cpp b/src/modules/window/wrap_Window.cpp index 80c30b974..b9d95c014 100644 --- a/src/modules/window/wrap_Window.cpp +++ b/src/modules/window/wrap_Window.cpp @@ -418,6 +418,12 @@ int w_minimize(lua_State* /*L*/) return 0; } +int w_maximize(lua_State *) +{ + instance()->maximize(); + return 0; +} + int w_showMessageBox(lua_State *L) { Window::MessageBoxData data = {}; diff --git a/src/modules/window/wrap_Window.h b/src/modules/window/wrap_Window.h index f8b2399f9..00d2cf535 100644 --- a/src/modules/window/wrap_Window.h +++ b/src/modules/window/wrap_Window.h @@ -54,6 +54,7 @@ int w_getPixelScale(lua_State *L); int w_toPixels(lua_State *L); int w_fromPixels(lua_State *L); int w_minimize(lua_State *L); +int w_maximize(lua_State *L); int w_showMessageBox(lua_State *L); extern "C" LOVE_EXPORT int luaopen_love_window(lua_State *L);