Ticket #36070: 3777.diff

File 3777.diff, 1.8 KB (added by domiman@…, 12 years ago)
  • src/gui/sdlmain.cpp

     
    246246        SDL_WM_SetCaption(title,VERSION);
    247247}
    248248
     249static void KillSwitch(bool pressed) {
     250        if (!pressed)
     251                return;
     252        throw 1;
     253}
     254
    249255static void PauseDOSBox(bool pressed) {
    250256        if (!pressed)
    251257                return;
     
    262268                SDL_WaitEvent(&event);    // since we're not polling, cpu usage drops to 0.
    263269                switch (event.type) {
    264270
    265                         case SDL_QUIT: throw(0); break;
     271                        case SDL_QUIT: KillSwitch(true); break;
    266272                        case SDL_KEYDOWN:   // Must use Pause/Break Key to resume.
    267273                        case SDL_KEYUP:
    268                         if(event.key.keysym.sym==SDLK_PAUSE) {
     274                        if(event.key.keysym.sym == SDLK_PAUSE) {
    269275
    270                                 paused=false;
     276                                paused = false;
    271277                                GFX_SetTitle(-1,-1,false);
    272278                                break;
    273279                        }
     280#if defined (MACOSX)
     281                        if (event.key.keysym.sym == SDLK_q && (event.key.keysym.mod == KMOD_RMETA || event.key.keysym.mod == KMOD_LMETA) ) {
     282                                /* On macs, all aps exit when pressing cmd-q */
     283                                KillSwitch(true);
     284                                break;
     285                        }
     286#endif
    274287                }
    275288        }
    276289}
     
    9911004        if (sdl.desktop.fullscreen) GFX_SwitchFullScreen();
    9921005}
    9931006
    994 static void KillSwitch(bool pressed) {
    995         if (!pressed)
    996                 return;
    997         throw 1;
    998 }
    9991007
    10001008static void SetPriority(PRIORITY_LEVELS level) {
    10011009
     
    15131521                        if (((event.key.keysym.sym==SDLK_TAB)) &&
    15141522                                ((sdl.laltstate==SDL_KEYDOWN) || (sdl.raltstate==SDL_KEYDOWN))) break;
    15151523#endif
     1524#if defined (MACOSX)                   
     1525                case SDL_KEYDOWN:
     1526                case SDL_KEYUP:
     1527                        /* On macs CMD-Q is the default key to close an application */
     1528                        if (event.key.keysym.sym == SDLK_q && (event.key.keysym.mod == KMOD_RMETA || event.key.keysym.mod == KMOD_LMETA) ) {
     1529                                KillSwitch(true);
     1530                                break;
     1531                        }
     1532#endif
    15161533                default:
    15171534                        void MAPPER_CheckEvent(SDL_Event * event);
    15181535                        MAPPER_CheckEvent(&event);