# HG changeset patch # User Sam Lantinga # Date 1253526873 0 # Node ID 0a7481888fd16100e24badbbd7a5d1d9b0de6286 # Parent 50b4ab8f8271d39995cc5975d934510a55f0366d 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"); diff -r 50b4ab8f8271 -r 0a7481888fd1 src/video/windib/SDL_dibevents.c --- a/src/video/windib/SDL_dibevents.c Mon Sep 21 09:47:53 2009 +0000 +++ b/src/video/windib/SDL_dibevents.c Mon Sep 21 09:54:33 2009 +0000 @@ -653,10 +653,11 @@ 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)