diff --git a/src/sdl2/keyboard/mod.rs b/src/sdl2/keyboard/mod.rs index a19eb4fd2f..6d0d4e4566 100644 --- a/src/sdl2/keyboard/mod.rs +++ b/src/sdl2/keyboard/mod.rs @@ -191,7 +191,10 @@ impl KeyboardUtil { #[doc(alias = "SDL_SetModState")] pub fn set_mod_state(&self, flags: Mod) { - let arg = sys::SDL_Keymod(flags.bits() as u32); + // Note: Clang (and therefore bindgen) generates different integer types + // for C-style enums on different platforms. On Windows, the underlying + // type is `i32`, while on Linux it is `u32`. + let arg = sys::SDL_Keymod(flags.bits().into()); unsafe { sys::SDL_SetModState(arg); }