Skip to content

Commit 880993f

Browse files
committed
Fix show, hide, focus and unfocus window/flags states for SDL2
1 parent bdfbd6e commit 880993f

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

src/platforms/rcore_desktop_sdl.c

+22-6
Original file line numberDiff line numberDiff line change
@@ -1427,7 +1427,7 @@ void PollInputEvents(void)
14271427

14281428
// Window events are also polled (Minimized, maximized, close...)
14291429

1430-
#ifndef PLATFORM_DESKTOP_SDL3
1430+
#ifndef PLATFORM_DESKTOP_SDL3
14311431
// SDL3 states:
14321432
// The SDL_WINDOWEVENT_* events have been moved to top level events,
14331433
// and SDL_WINDOWEVENT has been removed.
@@ -1437,7 +1437,7 @@ void PollInputEvents(void)
14371437
{
14381438
switch (event.window.event)
14391439
{
1440-
#endif
1440+
#endif
14411441
case SDL_WINDOWEVENT_RESIZED:
14421442
case SDL_WINDOWEVENT_SIZE_CHANGED:
14431443
{
@@ -1466,6 +1466,7 @@ void PollInputEvents(void)
14661466
}
14671467
#endif
14681468
} break;
1469+
14691470
case SDL_WINDOWEVENT_ENTER:
14701471
{
14711472
CORE.Input.Mouse.cursorOnScreen = true;
@@ -1474,6 +1475,7 @@ void PollInputEvents(void)
14741475
{
14751476
CORE.Input.Mouse.cursorOnScreen = false;
14761477
} break;
1478+
14771479
case SDL_WINDOWEVENT_MINIMIZED:
14781480
{
14791481
if ((CORE.Window.flags & FLAG_WINDOW_MINIMIZED) == 0) CORE.Window.flags |= FLAG_WINDOW_MINIMIZED;
@@ -1496,13 +1498,27 @@ void PollInputEvents(void)
14961498
}
14971499
#endif
14981500
} break;
1501+
14991502
case SDL_WINDOWEVENT_HIDDEN:
1500-
case SDL_WINDOWEVENT_FOCUS_LOST:
1503+
{
1504+
if ((CORE.Window.flags & FLAG_WINDOW_HIDDEN) == 0) CORE.Window.flags |= FLAG_WINDOW_HIDDEN;
1505+
1506+
} break;
15011507
case SDL_WINDOWEVENT_SHOWN:
1508+
{
1509+
if ((CORE.Window.flags & FLAG_WINDOW_HIDDEN) > 0) CORE.Window.flags &= ~FLAG_WINDOW_HIDDEN;
1510+
} break;
1511+
15021512
case SDL_WINDOWEVENT_FOCUS_GAINED:
1503-
#if defined(PLATFORM_DESKTOP_SDL3)
1504-
break;
1505-
#else
1513+
{
1514+
if ((CORE.Window.flags & FLAG_WINDOW_UNFOCUSED) > 0) CORE.Window.flags &= ~FLAG_WINDOW_UNFOCUSED;
1515+
} break;
1516+
case SDL_WINDOWEVENT_FOCUS_LOST:
1517+
{
1518+
if ((CORE.Window.flags & FLAG_WINDOW_UNFOCUSED) == 0) CORE.Window.flags |= FLAG_WINDOW_UNFOCUSED;
1519+
} break;
1520+
1521+
#ifndef PLATFORM_DESKTOP_SDL3
15061522
default: break;
15071523
}
15081524
} break;

0 commit comments

Comments
 (0)