Simple Directmedia Layer
Go to file
Cameron Gutman 8c921d8201 Implement keyboard grab support for Windows
This is implemented via a low-level keyboard hook. Unfortunately, this is
rather invasive, but it's how Microsoft recommends that it be done [0].
We want to do as little as possible in the hook, so we only intercept a few
crucial modifier keys there, while leaving other keys to the normal event
processing flow.

We will only install this hook if SDL_HINT_GRAB_KEYBOARD=1, which is not
the default. This will reduce any compatibility concerns to just the SDL
applications that explicitly ask for this behavior.

We also remove the hook when the grab is terminated to ensure that we're
not unnecessarily staying involved in key event processing when it's not
required anymore.

[0]: https://docs.microsoft.com/en-us/windows/win32/dxtecharts/disabling-shortcut-keys-in-games
2021-01-24 00:51:25 -05:00
VisualC Add SDL_cond implementation using Windows Condition Variables 2020-12-28 11:43:11 -08:00
VisualC-WinRT Add SDL_cond implementation using Windows Condition Variables 2020-12-28 11:43:11 -08:00
Xcode fixed permissions of xcode project file 2021-01-08 21:56:00 +03:00
Xcode-iOS Added weak linking to hidapi framework 2020-11-17 10:29:36 -08:00
acinclude acinclude/libtool.m4: Apply macos11 patch from libtool bug #44605 2021-01-09 00:11:20 +03:00
android-project Disabled Bluetooth if BLE is not supported 2021-01-07 19:33:12 -06:00
android-project-ant Added the old ant Android build project structure 2017-10-28 12:11:25 -07:00
build-scripts fix permissions of config.guess and config.sub 2021-01-24 00:51:25 -05:00
cmake renamed SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H to SDL_HAVE_MACHINE_JOYSTICK_H 2021-01-24 00:51:25 -05:00
debian Updated copyright for 2021 2021-01-02 10:25:38 -08:00
docs added documentation docs/README-os2.md (based on original readme.os2). 2020-10-14 23:01:06 +03:00
include renamed SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H to SDL_HAVE_MACHINE_JOYSTICK_H 2021-01-24 00:51:25 -05:00
src Implement keyboard grab support for Windows 2021-01-24 00:51:25 -05:00
test minor autotools build system updates. 2021-01-24 00:51:25 -05:00
visualtest test: unify all the command line usage logging. 2019-05-28 17:39:13 -04:00
wayland-protocols Implement keyboard grab support for Wayland 2021-01-24 00:51:24 -05:00
.hgignore Fixed bug 4965 - Update the .hgignore file 2020-02-03 16:38:07 -08:00
Android.mk minor whitespace fix 2020-10-09 03:28:30 +03:00
BUGS.txt BUGS.txt: Changed mailing list link to discourse.libsdl.org. 2017-04-01 00:05:25 -04:00
CMakeLists.txt fix build with --disable-directx 2021-01-24 00:51:24 -05:00
COPYING.txt Updated copyright for 2021 2021-01-02 10:25:38 -08:00
CREDITS.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
INSTALL.txt More HTTPS doc tweaks. 2017-02-16 16:59:07 -05:00
Makefile.in Fixed bug 5463 - generated Wayland interfaces are included in the library's ABI 2021-01-14 14:50:15 -08:00
Makefile.minimal Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.os2 old os2 analogue joystick code ported from SDL-1.2. disabled by default, 2021-01-24 00:51:25 -05:00
Makefile.pandora Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.psp added SDL_strtokr() as a replacement for POSIX strtok_r (bug #4046.) 2019-11-20 20:40:50 +03:00
Makefile.wiz Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
README-SDL.txt More HTTPS changes in the documentation. 2017-02-16 16:52:03 -05:00
README.txt readme: correct webpage URL to use HTTPS. 2017-02-16 13:30:34 -05:00
SDL2.spec.in Fixed bug 4615 - RPM Build fails due to unpackaged files 2019-06-11 19:58:10 -07:00
SDL2Config.cmake Fixed bug 3651 - CMake build does not install CMake package configuration 2017-08-09 19:03:10 -07:00
TODO.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
VisualC.html Fixed two typos in documentation. 2016-01-12 22:23:53 +01:00
WhatsNew.txt Fixed the name of the PS5 hint 2020-12-09 10:39:36 -08:00
autogen.sh Don't use pushd/popd in autogen.sh; Ubuntu's /bin/sh doesn't support it. 2016-12-26 22:58:58 -05:00
cmake_uninstall.cmake.in Fixed bug 3867 - Can't find install_manifest.txt when running 'uninstall' target 2017-10-12 08:44:45 -07:00
configure renamed SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H to SDL_HAVE_MACHINE_JOYSTICK_H 2021-01-24 00:51:25 -05:00
configure.ac renamed SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H to SDL_HAVE_MACHINE_JOYSTICK_H 2021-01-24 00:51:25 -05:00
sdl2-config-version.cmake.in cmake: Forgot to add this file to revision control. 2020-02-25 14:52:03 -05:00
sdl2-config.cmake.in build: Merge pkg-config Libs.private into Libs for static-only builds 2020-04-11 23:38:34 +01:00
sdl2-config.in build: Don't duplicate Libs in Libs.private in pkg-config file 2020-04-12 13:24:36 +01:00
sdl2.m4 acinclude & sdl2.m4 updates: 2020-12-22 17:00:28 +03:00
sdl2.pc.in build: Merge pkg-config Libs.private into Libs for static-only builds 2020-04-11 23:38:34 +01:00

README.txt

                         Simple DirectMedia Layer

                                  (SDL)

                                Version 2.0

---
https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting
with README.md

Enjoy!
	Sam Lantinga				(slouken@libsdl.org)