Fix love.window.isMaximized. Add love.window.restore and love.window.isMinimized (resolves issue #1354).

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-11-20 22:20:39 -04:00
parent c5fcfd1714
commit 0b9ca3e344
4 changed files with 33 additions and 1 deletions
+2
View File
@@ -152,8 +152,10 @@ public:
virtual void minimize() = 0; virtual void minimize() = 0;
virtual void maximize() = 0; virtual void maximize() = 0;
virtual void restore() = 0;
virtual bool isMaximized() const = 0; virtual bool isMaximized() const = 0;
virtual bool isMinimized() const = 0;
// default no-op implementation // default no-op implementation
virtual void swapBuffers(); virtual void swapBuffers();
+14
View File
@@ -914,11 +914,25 @@ void Window::maximize()
} }
} }
void Window::restore()
{
if (window != nullptr)
{
SDL_RestoreWindow(window);
updateSettings(settings, true);
}
}
bool Window::isMaximized() const bool Window::isMaximized() const
{ {
return window != nullptr && (SDL_GetWindowFlags(window) & SDL_WINDOW_MAXIMIZED); return window != nullptr && (SDL_GetWindowFlags(window) & SDL_WINDOW_MAXIMIZED);
} }
bool Window::isMinimized() const
{
return window != nullptr && (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED);
}
void Window::swapBuffers() void Window::swapBuffers()
{ {
SDL_GL_SwapWindow(window); SDL_GL_SwapWindow(window);
+2
View File
@@ -77,8 +77,10 @@ public:
void minimize(); void minimize();
void maximize(); void maximize();
void restore();
bool isMaximized() const; bool isMaximized() const;
bool isMinimized() const;
void swapBuffers(); void swapBuffers();
+15 -1
View File
@@ -479,10 +479,22 @@ int w_maximize(lua_State *)
return 0; return 0;
} }
int w_restore(lua_State *)
{
instance()->restore();
return 0;
}
int w_isMaximized(lua_State *L) int w_isMaximized(lua_State *L)
{ {
luax_pushboolean(L, instance()->isMaximized()); luax_pushboolean(L, instance()->isMaximized());
return 0; return 1;
}
int w_isMinimized(lua_State *L)
{
luax_pushboolean(L, instance()->isMinimized());
return 1;
} }
int w_showMessageBox(lua_State *L) int w_showMessageBox(lua_State *L)
@@ -586,7 +598,9 @@ static const luaL_Reg functions[] =
{ "fromPixels", w_fromPixels }, { "fromPixels", w_fromPixels },
{ "minimize", w_minimize }, { "minimize", w_minimize },
{ "maximize", w_maximize }, { "maximize", w_maximize },
{ "restore", w_restore },
{ "isMaximized", w_isMaximized }, { "isMaximized", w_isMaximized },
{ "isMinimized", w_isMinimized },
{ "showMessageBox", w_showMessageBox }, { "showMessageBox", w_showMessageBox },
{ "requestAttention", w_requestAttention }, { "requestAttention", w_requestAttention },
{ 0, 0 } { 0, 0 }