Browse Source

Added love.window.hasMouseFocus (issue #120)

Alex Szpakowski 12 years ago
parent
commit
b391a9f4a6

+ 2 - 0
src/modules/window/Window.h

@@ -76,6 +76,8 @@ public:
 	virtual void swapBuffers();
 
 	virtual bool hasFocus() const = 0;
+	virtual bool hasMouseFocus() const = 0;
+
 	virtual void setMouseVisible(bool visible) = 0;
 	virtual bool getMouseVisible() const = 0;
 

+ 5 - 0
src/modules/window/sdl/Window.cpp

@@ -305,6 +305,11 @@ bool Window::hasFocus() const
 	return (SDL_GetAppState() & SDL_APPINPUTFOCUS) != 0;
 }
 
+bool Window::hasMouseFocus() const
+{
+	return (SDL_GetAppState() & SDL_APPMOUSEFOCUS) != 0;
+}
+
 void Window::setMouseVisible(bool visible)
 {
 	SDL_ShowCursor(visible ? SDL_ENABLE : SDL_DISABLE);

+ 2 - 0
src/modules/window/sdl/Window.h

@@ -57,6 +57,8 @@ public:
 	void swapBuffers();
 
 	bool hasFocus() const;
+	bool hasMouseFocus() const;
+
 	void setMouseVisible(bool visible);
 	bool getMouseVisible() const;
 

+ 7 - 0
src/modules/window/wrap_Window.cpp

@@ -208,6 +208,12 @@ int w_hasFocus(lua_State *L)
 	return 1;
 }
 
+int w_hasMouseFocus(lua_State *L)
+{
+	luax_pushboolean(L, instance->hasMouseFocus());
+	return 1;
+}
+
 static const luaL_Reg functions[] =
 {
 	{ "checkMode", w_checkMode },
@@ -223,6 +229,7 @@ static const luaL_Reg functions[] =
 	{ "setTitle", w_setTitle },
 	{ "getTitle", w_getTitle },
 	{ "hasFocus", w_hasFocus },
+	{ "hasMouseFocus", w_hasMouseFocus },
 	{ 0, 0 }
 };
 

+ 1 - 0
src/modules/window/wrap_Window.h

@@ -42,6 +42,7 @@ int w_setIcon(lua_State *L);
 int w_setTitle(lua_State *L);
 int w_getTitle(lua_State *L);
 int w_hasFocus(lua_State *L);
+int w_hasMouseFocus(lua_State *L);
 extern "C" LOVE_EXPORT int luaopen_love_window(lua_State *L);
 
 } // window