sdlSetWindowKeyboardGrab function
Set a window's keyboard grab mode.
Keyboard grab enables capture of system keyboard shortcuts like Alt+Tab or the Meta/Super key. Note that not all system keyboard shortcuts can be captured by applications (one example is Ctrl+Alt+Del on Windows).
This is primarily intended for specialized applications such as VNC clients or VM frontends. Normal games should not use keyboard grab.
When keyboard grab is enabled, SDL will continue to handle Alt+Tab when the
window is full-screen to ensure the user is not trapped in your
application. If you have a custom keyboard shortcut to exit fullscreen
mode, you may suppress this behavior with
SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED
.
If the caller enables a grab while another window is currently grabbed, the other window loses its grab in favor of the caller's window.
\param window the window for which the keyboard grab mode should be set. \param grabbed this is true to grab keyboard, and false to release. \returns true on success or false on failure; call SDL_GetError() for more information.
\threadsafety This function should only be called on the main thread.
\since This function is available since SDL 3.1.3.
\sa SDL_GetWindowKeyboardGrab \sa SDL_SetWindowMouseGrab
extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowKeyboardGrab(SDL_Window *window, bool grabbed)
Implementation
bool sdlSetWindowKeyboardGrab(Pointer<SdlWindow> window, bool grabbed) {
final sdlSetWindowKeyboardGrabLookupFunction = libSdl3.lookupFunction<
Uint8 Function(Pointer<SdlWindow> window, Uint8 grabbed),
int Function(
Pointer<SdlWindow> window, int grabbed)>('SDL_SetWindowKeyboardGrab');
return sdlSetWindowKeyboardGrabLookupFunction(window, grabbed ? 1 : 0) == 1;
}