SDL: Make sure the type in the SDL_Event aligns properly across the union

From 790cd395f54f458303fb3b4a4f8ed4fd62719e55 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 7 Mar 2024 06:35:23 -0800
Subject: [PATCH] Make sure the type in the SDL_Event aligns properly across
 the union

---
 include/SDL3/SDL_events.h | 6 +++++-
 src/events/SDL_events.c   | 3 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/SDL3/SDL_events.h b/include/SDL3/SDL_events.h
index 3c133f5a9c2c..ec7002e562c5 100644
--- a/include/SDL3/SDL_events.h
+++ b/include/SDL3/SDL_events.h
@@ -227,7 +227,11 @@ typedef enum
     /**
      *  This last event is only for bounding internal arrays
      */
-    SDL_EVENT_LAST    = 0xFFFF
+    SDL_EVENT_LAST    = 0xFFFF,
+
+    /* This just makes sure the enum is the size of Uint32 */
+    SDL_EVENT_ENUM_PADDING = 0x7FFFFFFF
+
 } SDL_EventType;
 
 /**
diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c
index b5c05c7e1b6e..01d126350ac1 100644
--- a/src/events/SDL_events.c
+++ b/src/events/SDL_events.c
@@ -48,6 +48,9 @@
 /* Determines how often we wake to call SDL_PumpEvents() in SDL_WaitEventTimeout_Device() */
 #define PERIODIC_POLL_INTERVAL_NS (3 * SDL_NS_PER_SECOND)
 
+/* Make sure the type in the SDL_Event aligns properly across the union */
+SDL_COMPILE_TIME_ASSERT(SDL_Event_type, sizeof(Uint32) == sizeof(SDL_EventType));
+
 typedef struct SDL_EventWatcher
 {
     SDL_EventFilter callback;