diff --git a/project/include/ui/WindowEvent.h b/project/include/ui/WindowEvent.h index 373960ef3..8980e62de 100644 --- a/project/include/ui/WindowEvent.h +++ b/project/include/ui/WindowEvent.h @@ -25,6 +25,8 @@ namespace lime { WINDOW_MOVE, WINDOW_RESIZE, WINDOW_RESTORE, + WINDOW_SHOW, + WINDOW_HIDE }; diff --git a/project/src/backend/sdl/SDLApplication.cpp b/project/src/backend/sdl/SDLApplication.cpp index 7e6014ffa..d7f751e2b 100644 --- a/project/src/backend/sdl/SDLApplication.cpp +++ b/project/src/backend/sdl/SDLApplication.cpp @@ -764,14 +764,9 @@ namespace lime { switch (event->window.event) { - case SDL_WINDOWEVENT_SHOWN: windowEvent.type = WINDOW_ACTIVATE; break; + case SDL_WINDOWEVENT_SHOWN: windowEvent.type = WINDOW_SHOW; break; case SDL_WINDOWEVENT_CLOSE: windowEvent.type = WINDOW_CLOSE; break; - case SDL_WINDOWEVENT_HIDDEN: - - inBackground = true; - windowEvent.type = WINDOW_DEACTIVATE; - break; - + case SDL_WINDOWEVENT_HIDDEN: windowEvent.type = WINDOW_HIDE; break; case SDL_WINDOWEVENT_ENTER: windowEvent.type = WINDOW_ENTER; break; case SDL_WINDOWEVENT_FOCUS_GAINED: windowEvent.type = WINDOW_FOCUS_IN; break; case SDL_WINDOWEVENT_FOCUS_LOST: windowEvent.type = WINDOW_FOCUS_OUT; break; @@ -801,15 +796,6 @@ namespace lime { windowEvent.windowID = event->window.windowID; WindowEvent::Dispatch (&windowEvent); - switch (event->window.event) { - - case SDL_WINDOWEVENT_SHOWN: - - inBackground = false; - break; - - } - } } diff --git a/src/lime/_internal/backend/native/NativeApplication.hx b/src/lime/_internal/backend/native/NativeApplication.hx index 549873fc3..3f4fa50f5 100644 --- a/src/lime/_internal/backend/native/NativeApplication.hx +++ b/src/lime/_internal/backend/native/NativeApplication.hx @@ -561,6 +561,12 @@ class NativeApplication window.__fullscreen = false; window.__minimized = false; window.onRestore.dispatch(); + + case WINDOW_SHOW: + window.onShow.dispatch(); + + case WINDOW_HIDE: + window.onHide.dispatch(); } } } @@ -967,4 +973,6 @@ class NativeApplication var WINDOW_MOVE = 10; var WINDOW_RESIZE = 11; var WINDOW_RESTORE = 12; + var WINDOW_SHOW = 13; + var WINDOW_HIDE = 14; } diff --git a/src/lime/ui/Window.hx b/src/lime/ui/Window.hx index 1cdc8dd73..3f6f7a10d 100644 --- a/src/lime/ui/Window.hx +++ b/src/lime/ui/Window.hx @@ -62,6 +62,7 @@ class Window public var onFocusIn(default, null) = new EventVoid>(); public var onFocusOut(default, null) = new EventVoid>(); public var onFullscreen(default, null) = new EventVoid>(); + public var onHide(default, null) = new EventVoid>(); public var onKeyDown(default, null) = new EventKeyModifier->Void>(); public var onKeyUp(default, null) = new EventKeyModifier->Void>(); public var onLeave(default, null) = new EventVoid>(); @@ -78,6 +79,7 @@ class Window public var onRenderContextRestored(default, null) = new EventVoid>(); public var onResize(default, null) = new EventInt->Void>(); public var onRestore(default, null) = new EventVoid>(); + public var onShow(default, null) = new EventVoid>(); public var onTextEdit(default, null) = new EventInt->Int->Void>(); public var onTextInput(default, null) = new EventVoid>(); public var parameters:Dynamic;