Mercurial > sdl-ios-xcode
view src/video/qtopia/SDL_QPEApp.cc @ 4219:0a7481888fd1 SDL-1.2
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");
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 21 Sep 2009 09:54:33 +0000 |
parents | a1b03ba2fcd0 |
children |
line wrap: on
line source
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2009 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Sam Lantinga slouken@libsdl.org */ #include "SDL_config.h" #include <qpe/qpeapplication.h> #include <qapplication.h> #include <qevent.h> #include "SDL_thread.h" #include "SDL_timer.h" #include "SDL_error.h" /* Flag to tell whether or not the Be application is active or not */ int SDL_QPEAppActive = 0; static QPEApplication *app; int SDL_InitQPEApp() { if(SDL_QPEAppActive <= 0) { if(!qApp) { int argc = 1; char *argv[] = { { "SDLApp" } }; app = new QPEApplication(argc, argv); QWidget dummy; app->showMainWidget(&dummy); } else { app = (QPEApplication*)qApp; } SDL_QPEAppActive++; } return 0; } /* Quit the QPE Application, if there's nothing left to do */ void SDL_QuitQPEApp(void) { /* Decrement the application reference count */ SDL_QPEAppActive--; /* If the reference count reached zero, clean up the app */ if ( SDL_QPEAppActive == 0 && app) { delete app; app = 0; qApp = 0; } }