X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevents.c;h=709ad4535c132ea4343f0c19abc630f030f60f4d;hb=abe44529b439ad39b4d8dbf19cbd67c9b9844279;hp=62d146fa2a508bd2998b9feec57258010fc48146;hpb=786d4ea93b159a7f4cc09c4f05ec75939d8928d4;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 62d146fa..709ad453 100644 --- a/src/events.c +++ b/src/events.c @@ -1,15 +1,13 @@ -/*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * -*----------------------------------------------------------* -* (c) 1995-2006 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* events.c * -***********************************************************/ +// ============================================================================ +// Rocks'n'Diamonds - McDuffin Strikes Back! +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// http://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// events.c +// ============================================================================ #include "libgame/libgame.h" @@ -175,6 +173,13 @@ void EventLoop(void) case EVENT_TEXTINPUT: HandleTextEvent((TextEvent *) &event); break; + + case SDL_APP_WILLENTERBACKGROUND: + case SDL_APP_DIDENTERBACKGROUND: + case SDL_APP_WILLENTERFOREGROUND: + case SDL_APP_DIDENTERFOREGROUND: + HandlePauseResumeEvent((PauseResumeEvent *) &event); + break; #endif case EVENT_KEYPRESS: @@ -363,14 +368,6 @@ void SleepWhileUnmapped() void HandleExposeEvent(ExposeEvent *event) { -#if !defined(TARGET_SDL) -#if 1 - RedrawPlayfield(); -#else - RedrawPlayfield(FALSE, event->x, event->y, event->width, event->height); -#endif - FlushDisplay(); -#endif } void HandleButtonEvent(ButtonEvent *event) @@ -984,6 +981,19 @@ void HandleTextEvent(TextEvent *event) HandleKey(key, KEY_RELEASED); } } + +void HandlePauseResumeEvent(PauseResumeEvent *event) +{ + if (event->type == SDL_APP_WILLENTERBACKGROUND) + { + Mix_PauseMusic(); + } + else if (event->type == SDL_APP_DIDENTERFOREGROUND) + { + Mix_ResumeMusic(); + } +} + #endif void HandleKeyEvent(KeyEvent *event) @@ -1479,8 +1489,10 @@ void HandleKey(Key key, int key_status) if (key_status == KEY_RELEASED) return; - if ((key == KSYM_Return || key == KSYM_KP_Enter) && - (GetKeyModState() & KMOD_Alt) && video.fullscreen_available) + if ((key == KSYM_F11 || + ((key == KSYM_Return || + key == KSYM_KP_Enter) && (GetKeyModState() & KMOD_Alt))) && + video.fullscreen_available) { setup.fullscreen = !setup.fullscreen; @@ -1496,8 +1508,12 @@ void HandleKey(Key key, int key_status) return; } - if ((key == KSYM_minus || key == KSYM_plus || key == KSYM_0) && - (GetKeyModState() & KMOD_Alt) && video.window_scaling_available && + if ((key == KSYM_minus || + key == KSYM_plus || + key == KSYM_0) && + ((GetKeyModState() & KMOD_Control) || + (GetKeyModState() & KMOD_Alt)) && + video.window_scaling_available && !video.fullscreen_enabled) { if (key == KSYM_0)