Merge branch 'fix-window-refocus' into 'master'
SDL: only react to window focus changes if state actually changes See merge request KartKrew/Kart!859
This commit is contained in:
parent
d6fa3023b7
commit
15e02127dc
1 changed files with 9 additions and 1 deletions
|
|
@ -622,10 +622,13 @@ static INT32 SDLJoyAxis(const Sint16 axis, evtype_t which)
|
|||
|
||||
static void Impl_HandleWindowEvent(SDL_WindowEvent evt)
|
||||
{
|
||||
#define FOCUSUNION (mousefocus | (kbfocus << 1))
|
||||
static SDL_bool firsttimeonmouse = SDL_TRUE;
|
||||
static SDL_bool mousefocus = SDL_TRUE;
|
||||
static SDL_bool kbfocus = SDL_TRUE;
|
||||
|
||||
const unsigned int oldfocus = FOCUSUNION;
|
||||
|
||||
switch (evt.event)
|
||||
{
|
||||
case SDL_WINDOWEVENT_ENTER:
|
||||
|
|
@ -649,6 +652,11 @@ static void Impl_HandleWindowEvent(SDL_WindowEvent evt)
|
|||
window_y = evt.data2;
|
||||
}
|
||||
|
||||
if (FOCUSUNION == oldfocus) // No state change
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (mousefocus && kbfocus)
|
||||
{
|
||||
// Tell game we got focus back, resume music if necessary
|
||||
|
|
@ -688,7 +696,7 @@ static void Impl_HandleWindowEvent(SDL_WindowEvent evt)
|
|||
SDLdoUngrabMouse();
|
||||
}
|
||||
}
|
||||
|
||||
#undef FOCUSUNION
|
||||
}
|
||||
|
||||
static void Impl_HandleKeyboardEvent(SDL_KeyboardEvent evt, Uint32 type)
|
||||
|
|
|
|||
Loading…
Reference in a new issue