From f585eccdc07443324af171b01cf411d6e7a46767 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 21 Sep 2009 09:54:33 +0000 Subject: [PATCH] Fixed bug #695 Nomad 2009-02-08 10:34:43 PST The 2nd init is good. The problem is in "SDL_dibevents.c" in DIB_CreateWindow() in SVN: { char *windowid = SDL_getenv("SDL_WINDOWID"); SDL_RegisterApp(NULL, 0, 0); ... using of data to which windowid is points problem: SDL_RegisterApp() may call SDL_getenv() and windowid will point to some wrong string solve: char *windowid; SDL_RegisterApp(NULL, 0, 0); windowid = SDL_getenv("SDL_WINDOWID"); --- src/video/windib/SDL_dibevents.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/video/windib/SDL_dibevents.c b/src/video/windib/SDL_dibevents.c index 6794f25b1..37a6b951d 100644 --- a/src/video/windib/SDL_dibevents.c +++ b/src/video/windib/SDL_dibevents.c @@ -653,10 +653,11 @@ static SDL_keysym *TranslateKey(WPARAM vkey, UINT scancode, SDL_keysym *keysym, int DIB_CreateWindow(_THIS) { - char *windowid = SDL_getenv("SDL_WINDOWID"); + char *windowid; SDL_RegisterApp(NULL, 0, 0); + windowid = SDL_getenv("SDL_WINDOWID"); SDL_windowid = (windowid != NULL); if ( SDL_windowid ) { #if defined(_WIN32_WCE) && (_WIN32_WCE < 300)