diff --git a/lime/_backend/native/NativeWindow.hx b/lime/_backend/native/NativeWindow.hx index ff85188da..c32826dc5 100644 --- a/lime/_backend/native/NativeWindow.hx +++ b/lime/_backend/native/NativeWindow.hx @@ -138,6 +138,15 @@ class NativeWindow { } + public function raise ():Void { + + if (handle != null) { + + lime_window_raise (handle); + + } + + } public function resize (width:Int, height:Int):Void { @@ -228,6 +237,7 @@ class NativeWindow { private static var lime_window_get_x = System.load ("lime", "lime_window_get_x", 1); private static var lime_window_get_y = System.load ("lime", "lime_window_get_y", 1); private static var lime_window_move = System.load ("lime", "lime_window_move", 3); + private static var lime_window_raise = System.load ("lime", "lime_window_raise", 1); private static var lime_window_resize = System.load ("lime", "lime_window_resize", 3); private static var lime_window_set_enable_text_events = System.load ("lime", "lime_window_set_enable_text_events", 2); private static var lime_window_set_fullscreen = System.load ("lime", "lime_window_set_fullscreen", 2); diff --git a/lime/ui/Window.hx b/lime/ui/Window.hx index 3f6c341c0..3d7646c55 100644 --- a/lime/ui/Window.hx +++ b/lime/ui/Window.hx @@ -239,6 +239,11 @@ class Window { } + public function raise ():Void { + + backend.raise (); + + } public function resize (width:Int, height:Int):Void { diff --git a/project/include/ui/Window.h b/project/include/ui/Window.h index 7748f4490..29314b0de 100644 --- a/project/include/ui/Window.h +++ b/project/include/ui/Window.h @@ -27,6 +27,7 @@ namespace lime { virtual int GetX () = 0; virtual int GetY () = 0; virtual void Move (int x, int y) = 0; + virtual void Raise () = 0; virtual void Resize (int width, int height) = 0; virtual void SetEnableTextEvents (bool enable) = 0; virtual bool SetFullscreen (bool fullscreen) = 0; diff --git a/project/src/ExternalInterface.cpp b/project/src/ExternalInterface.cpp index 75da57232..a746cd7de 100644 --- a/project/src/ExternalInterface.cpp +++ b/project/src/ExternalInterface.cpp @@ -1172,6 +1172,13 @@ namespace lime { } + value lime_window_raise (value window) { + + Window* targetWindow = (Window*)(intptr_t)val_float (window); + targetWindow->Raise (); + return alloc_null (); + + } value lime_window_resize (value window, value width, value height) { @@ -1316,6 +1323,7 @@ namespace lime { DEFINE_PRIM (lime_window_get_x, 1); DEFINE_PRIM (lime_window_get_y, 1); DEFINE_PRIM (lime_window_move, 3); + DEFINE_PRIM (lime_window_raise, 1); DEFINE_PRIM (lime_window_resize, 3); DEFINE_PRIM (lime_window_set_enable_text_events, 2); DEFINE_PRIM (lime_window_set_fullscreen, 2); diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp index fed868b69..cfa990b41 100644 --- a/project/src/backend/sdl/SDLWindow.cpp +++ b/project/src/backend/sdl/SDLWindow.cpp @@ -184,6 +184,12 @@ namespace lime { } + void SDLWindow::Raise () { + + SDL_RaiseWindow (sdlWindow); + + } + void SDLWindow::Resize (int width, int height) { diff --git a/project/src/backend/sdl/SDLWindow.h b/project/src/backend/sdl/SDLWindow.h index 3ebf30330..81420f0af 100644 --- a/project/src/backend/sdl/SDLWindow.h +++ b/project/src/backend/sdl/SDLWindow.h @@ -25,6 +25,7 @@ namespace lime { virtual int GetX (); virtual int GetY (); virtual void Move (int x, int y); + virtual void Raise (); virtual void Resize (int width, int height); virtual void SetEnableTextEvents (bool enabled); virtual bool SetFullscreen (bool fullscreen);