diff options
author | Jesse Hall <jessehall@google.com> | 2012-07-09 11:27:07 -0700 |
---|---|---|
committer | Jesse Hall <jessehall@google.com> | 2012-07-22 00:35:08 -0700 |
commit | 9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f (patch) | |
tree | ded6ee18c4e1f33df235e53615a6d65e2d64f4ef /distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc | |
parent | 74b55003f76dbca96e4a26d98fe464081ca5341f (diff) | |
download | external_qemu-9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f.zip external_qemu-9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f.tar.gz external_qemu-9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f.tar.bz2 |
Import SDL release-1.2.15
Change-Id: I505c4aea24325cad475f217db5589814b4c75dbf
Diffstat (limited to 'distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc')
-rw-r--r-- | distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc b/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc new file mode 100644 index 0000000..46fd518 --- /dev/null +++ b/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc @@ -0,0 +1,47 @@ + +/* Include the SDL main definition header */ +#include "SDL_main.h" +#include <stdlib.h> +#include <unistd.h> +#ifdef main +#undef main +#endif +#ifdef QWS +#include <qpe/qpeapplication.h> +#include <qapplication.h> +#include <qpe/qpeapplication.h> +#include <stdlib.h> + +// Workaround for OPIE to remove taskbar icon. Also fixes +// some issues in Qtopia where there are left-over qcop files in /tmp/. +// I'm guessing this will also clean up the taskbar in the Sharp version +// of Qtopia. +static inline void cleanupQCop() { + QString appname(qApp->argv()[0]); + int slash = appname.findRev("/"); + if(slash != -1) { appname = appname.mid(slash+1); } + QString cmd = QPEApplication::qpeDir() + "bin/qcop QPE/System 'closing(QString)' '"+appname+"'"; + system(cmd.latin1()); + cmd = "/tmp/qcop-msg-"+appname; + unlink(cmd.latin1()); +} + +static QPEApplication *app; +#endif + +extern int SDL_main(int argc, char *argv[]); + +int main(int argc, char *argv[]) +{ +#ifdef QWS + // This initializes the Qtopia application. It needs to be done here + // because it parses command line options. + app = new QPEApplication(argc, argv); + QWidget dummy; + app->showMainWidget(&dummy); + atexit(cleanupQCop); +#endif + // Exit here because if return is used, the application + // doesn't seem to quit correctly. + exit(SDL_main(argc, argv)); +} |