From fa0147cfa576c40aa9592ab9090d1b4ed543b4a5 Mon Sep 17 00:00:00 2001 From: staphen Date: Wed, 26 Apr 2023 00:29:33 -0400 Subject: [PATCH] Handle window focus events when svid movie is playing --- Source/movie.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Source/movie.cpp b/Source/movie.cpp index b3bebd59f..944a68b11 100644 --- a/Source/movie.cpp +++ b/Source/movie.cpp @@ -55,6 +55,23 @@ void play_movie(const char *pszMovie, bool userCanClose) if (userCanClose || (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE)) movie_playing = false; break; +#ifndef USE_SDL1 + case SDL_WINDOWEVENT: + if (event.window.event == SDL_WINDOWEVENT_FOCUS_LOST) + diablo_focus_pause(); + else if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED) + diablo_focus_unpause(); + break; +#else + case SDL_ACTIVEEVENT: + if ((event.active.state & SDL_APPINPUTFOCUS) != 0) { + if (event.active.gain == 0) + diablo_focus_pause(); + else + diablo_focus_unpause(); + } + break; +#endif case SDL_QUIT: SVidPlayEnd(); diablo_quit(0);