view src/main/linux/SDL_Qtopia_main.cc @ 610:95433459fbd2

Date: Mon, 14 Apr 2003 22:08:27 +0100 From: Patrice Mandin Subject: [SDL][PATCH] 2 patches for sdl Here are 2 patches for SDL: - One is to put the dummy video drivers at the end of the video drivers list. It gave me problems, when SDL_VIDEODRIVER is not set, and the dummy driver is used instead of the platform's driver, just because it is always available. So the dummy driver must always be at the end of the list. I suppose picogui and dc video drivers also don't work.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 15 Apr 2003 15:46:56 +0000
parents 969fbd4dcd4e
children 0648505b1f8b
line wrap: on
line source


/* 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.
  QWidget dummy;
  app = new QPEApplication(argc, argv);
  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));
}