Simple DirectMedia Layer https://libsdl.org
Find a file
Frank Praznik f439e44771 x11: Modernize and optimize key handling
- Use modern Xkb functions where appropriate and cleanly separate the modern and legacy paths.
- Remove the deprecated XKeycodeToKeysym function in favor of directly querying the keymap on the legacy path.
- Look up virtual modifiers by name on the Xkb path to better handle remapping (equivalent to the modifier handling under Wayland).
- Optimize keymap creation on the Xkb path to cut keymap build times and enable fast group switching  (equivalent to keymap handling on Wayland).
- Enable and handle Xkb events to handle changes to the group, mapping, and modifier states. This is more reliable than using the legacy events (group changes may not arrive if the window lacks pointer focus), and better handles cases where modifiers are latched, locked, or activated externally rather than physically pressed.
2025-08-06 13:35:32 -07:00
.github ci: Haiku does not need -DSDL_UNIX_CONSOLE_BUILD=ON 2025-08-02 03:39:38 +02:00
android-project Support Google Play 16 KB Page Size Requirement (#13470) 2025-07-31 16:12:54 -07:00
build-scripts SDL_migration.cocci: Fixed a few incorrect function names. 2025-08-02 22:54:03 -04:00
cmake x11: Modernize and optimize key handling 2025-08-06 13:35:32 -07:00
docs Sync SDL3 wiki -> header 2025-07-30 03:04:38 +00:00
examples Restore support for the Nokia N-Gage (#12148) 2025-05-22 11:07:22 -07:00
include x11: Modernize and optimize key handling 2025-08-06 13:35:32 -07:00
src x11: Modernize and optimize key handling 2025-08-06 13:35:32 -07:00
test Fix SDL_BlitSurfaceScaled crash 2025-08-01 09:22:20 -07:00
VisualC Implement SInput Device Support (#13343) 2025-07-15 18:35:47 -07:00
VisualC-GDK Implement SInput Device Support (#13343) 2025-07-15 18:35:47 -07:00
wayland-protocols wayland: Add support for the key repeat event (seat v10) 2025-07-06 11:28:04 -04:00
Xcode Implement SInput Device Support (#13343) 2025-07-15 18:35:47 -07:00
.clang-format Add 'wl_list_for_each_safe' to the clang-format macro list 2024-03-14 10:22:23 -04:00
.clang-tidy Fix size of memcpy in SDL_AudioDeviceFormatChangedAlreadyLocked 2023-08-05 14:14:45 -04:00
.editorconfig .editorconfig: Remove excess apostrophe at *.cocci 2024-06-16 09:18:17 -07:00
.gitignore Allow in-tree build 2024-10-30 00:04:17 +01:00
.wikiheaders-options wikiheaders: Let each subproject specify how to find their property symbols. 2025-06-17 16:41:24 -04:00
Android.mk Support Google Play 16 KB Page Size Requirement (#13470) 2025-07-31 16:12:54 -07:00
BUGS.txt Added a Discord link to BUGS.txt 2025-01-13 16:42:50 -08:00
CMakeLists.txt windows: replace shobjidl_core.h usage with shobjidl.h except for when targeting xbox 2025-08-01 17:11:49 -07:00
CREDITS.md Updated the credits for SDL 3.0 2025-01-13 16:42:50 -08:00
INSTALL.md Add a link to docs/INTRO-mingw.md 2025-03-06 16:25:17 -08:00
LICENSE.txt Updated copyright for 2025 2025-01-01 07:45:52 -08:00
README.md Updating documentation for the 3.2.0 release 2025-01-15 20:38:16 -08:00
WhatsNew.txt Added SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT 2025-03-05 09:07:05 -08:00

Simple DirectMedia Layer (SDL for short) is a cross-platform library designed to make it easy to write multi-media software, such as games and emulators.

You can find the latest release and additional information at: https://www.libsdl.org/

Installation instructions and a quick introduction is available in INSTALL.md

This library is distributed under the terms of the zlib license, available in LICENSE.txt.

Enjoy!

Sam Lantinga (slouken@libsdl.org)