void SDL_SetWindowKeyboardGrab(SDL_Window* window, SDL_bool grabbed)
window | キーボードグラブモードが設定される |
grabbed | SDL_TRUEのときキーボードグラブする, SDL_FALSEのとき解除する |
キーボードをグラブすると, Alt+TabやMeta/Superキーのようなシステムキーボードショートカットを捕らえることができる. 全てのシステムキーボードショートカットをアプリケーションが捕らえることができるのではないので注意すること. (例えばWindowsのCtrl+Alt+Del)
これは主にVNCクライアントやVMフロントエンドのような特殊なアプリケーションを想定としている. 通常のゲーム等はキーボードをグラブすべきではない.
キーボードグラムを有効にしても, ウィンドウがフルスクリーンの場合は, SDLはユーザがアプリケーションから脱出できるようにAlt+Tabを処理する. フルスクリーンから脱出するショートカットを自分で作成する場合は, この動作をSDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBEDで無効にすること.
既に他のウィンドウがマウスグラブされている状態で別のウィンドウのマウスグラブを設定した場合, 元のウィンドウはマウスグラブを失い, 後に設定したウィンドウがマウスグラブを得る.