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");
--- 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)