From 36538a4b3e98e0ac8fcc9294ab469761f2e32f86 Mon Sep 17 00:00:00 2001 From: "Lars A. Doucet" Date: Thu, 20 Aug 2015 20:57:49 -0500 Subject: [PATCH 1/2] window: exposed "raise()" function from SDL to bring the specified window to the top of the display stack --- lime/_backend/native/NativeWindow.hx | 10 ++++++++++ lime/ui/Window.hx | 5 +++++ project/include/ui/Window.h | 1 + project/src/ExternalInterface.cpp | 8 ++++++++ project/src/backend/sdl/SDLWindow.cpp | 6 ++++++ project/src/backend/sdl/SDLWindow.h | 1 + 6 files changed, 31 insertions(+) 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); From b0d092a0a84d1ec2a7278631369ead2eedc21473 Mon Sep 17 00:00:00 2001 From: "Lars A. Doucet" Date: Fri, 21 Aug 2015 09:48:20 -0500 Subject: [PATCH 2/2] window raise: compile fix for HTML5 and Flash --- lime/_backend/flash/FlashWindow.hx | 6 ++++++ lime/_backend/html5/HTML5Window.hx | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lime/_backend/flash/FlashWindow.hx b/lime/_backend/flash/FlashWindow.hx index b788739ee..1b1e8c915 100644 --- a/lime/_backend/flash/FlashWindow.hx +++ b/lime/_backend/flash/FlashWindow.hx @@ -63,6 +63,12 @@ class FlashWindow { + } + + public function raise ():Void { + + + } diff --git a/lime/_backend/html5/HTML5Window.hx b/lime/_backend/html5/HTML5Window.hx index ed5a53a97..883267b96 100644 --- a/lime/_backend/html5/HTML5Window.hx +++ b/lime/_backend/html5/HTML5Window.hx @@ -505,6 +505,12 @@ class HTML5Window { + } + + public function raise ():Void { + + + }