diff --git a/editor.c b/editor.c index c3faf93..3a5c169 100644 --- a/editor.c +++ b/editor.c @@ -569,7 +569,7 @@ void editorMoveCursor(int key) { int editorEvents(void) { SDL_Event event; - int j, ksym; + int j, ksym, kmod; time_t idletime; /* Sleep 0.25 seconds if no body is pressing any key for a few seconds. @@ -592,6 +592,12 @@ int editorEvents(void) { return 1; break; default: +#ifdef __APPLE__ + kmod = event.key.keysym.mod; + if (ksym == SDLK_q && (kmod == KMOD_RMETA || kmod == KMOD_LMETA)) { + exit(0); + } else +#endif if (ksym >= 0 && ksym < KEY_MAX) { E.key[ksym].counter = 1; E.key[ksym].translation = (event.key.keysym.unicode & 0xff); diff --git a/load81.c b/load81.c index 6dd5853..37dc8a8 100644 --- a/load81.c +++ b/load81.c @@ -345,16 +345,25 @@ void showFPS(void) { int processSdlEvents(void) { SDL_Event event; + int ksym, kmod; resetEvents(); while (SDL_PollEvent(&event)) { switch(event.type) { case SDL_KEYDOWN: - switch(event.key.keysym.sym) { + ksym = event.key.keysym.sym; + switch(ksym) { case SDLK_ESCAPE: return 1; break; default: +#ifdef __APPLE__ + kmod = event.key.keysym.mod; + if (ksym == SDLK_q && (kmod == KMOD_RMETA || kmod == KMOD_LMETA)) { + exit(0); + break; + } +#endif keyboardEvent(&event.key,1); break; }