From 3d72e94c54f4e877362d0887587dddf5b7916655 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 22 Jul 2012 11:24:04 -0700 Subject: [PATCH] Fix for the Game Center status window always being behind the SDL window (untested!) --- src/video/uikit/SDL_uikitopengles.m | 4 ---- src/video/uikit/SDL_uikitvideo.m | 2 ++ src/video/uikit/SDL_uikitwindow.h | 2 ++ src/video/uikit/SDL_uikitwindow.m | 16 ++++++++++++++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/video/uikit/SDL_uikitopengles.m b/src/video/uikit/SDL_uikitopengles.m index f377b2b3c..ca3c95e99 100755 --- a/src/video/uikit/SDL_uikitopengles.m +++ b/src/video/uikit/SDL_uikitopengles.m @@ -90,13 +90,9 @@ void UIKit_GL_SwapWindow(_THIS, SDL_Window * window) return; } [data->view swapBuffers]; - /* since now we've got something to draw - make the window visible */ - [data->uiwindow makeKeyAndVisible]; /* we need to let the event cycle run, or the OS won't update the OpenGL view! */ SDL_PumpEvents(); - } SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window) diff --git a/src/video/uikit/SDL_uikitvideo.m b/src/video/uikit/SDL_uikitvideo.m index a08fee1c6..420906aa9 100755 --- a/src/video/uikit/SDL_uikitvideo.m +++ b/src/video/uikit/SDL_uikitvideo.m @@ -83,6 +83,8 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) device->SetDisplayMode = UIKit_SetDisplayMode; device->PumpEvents = UIKit_PumpEvents; device->CreateWindow = UIKit_CreateWindow; + device->ShowWindow = UIKit_ShowWindow; + device->HideWindow = UIKit_HideWindow; device->SetWindowFullscreen = UIKit_SetWindowFullscreen; device->DestroyWindow = UIKit_DestroyWindow; device->GetWindowWMInfo = UIKit_GetWindowWMInfo; diff --git a/src/video/uikit/SDL_uikitwindow.h b/src/video/uikit/SDL_uikitwindow.h index 99f6ed20e..9635aa9fa 100755 --- a/src/video/uikit/SDL_uikitwindow.h +++ b/src/video/uikit/SDL_uikitwindow.h @@ -29,6 +29,8 @@ typedef struct SDL_WindowData SDL_WindowData; extern int UIKit_CreateWindow(_THIS, SDL_Window * window); +extern void UIKit_ShowWindow(_THIS, SDL_Window * window); +extern void UIKit_HideWindow(_THIS, SDL_Window * window); extern void UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen); extern void UIKit_DestroyWindow(_THIS, SDL_Window * window); extern SDL_bool UIKit_GetWindowWMInfo(_THIS, SDL_Window * window, diff --git a/src/video/uikit/SDL_uikitwindow.m b/src/video/uikit/SDL_uikitwindow.m index 632494a79..4c20a0421 100755 --- a/src/video/uikit/SDL_uikitwindow.m +++ b/src/video/uikit/SDL_uikitwindow.m @@ -210,6 +210,22 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo } +void +UIKit_ShowWindow(_THIS, SDL_Window * window) +{ + UIWindow *uiwindow = ((SDL_WindowData *) window->driverdata)->uiwindow; + + [uiwindow makeKeyAndVisible]; +} + +void +UIKit_HideWindow(_THIS, SDL_Window * window) +{ + UIWindow *uiwindow = ((SDL_WindowData *) window->driverdata)->uiwindow; + + uiwindow.hidden = YES; +} + void UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen) {