目次 - SDL 3.0 API(機能別) - ディスプレイとウィンドウ - SDL_SetWindowKeyboardGrab

SDL_SetWindowKeyboardGrab

ウィンドウのキーボードグラブモードを設定する

ヘッダ

SDL3/SDL_video.h

構文

bool SDL_SetWindowKeyboardGrab(SDL_Window *window, bool grabbed);

引数

SDL_Window *windowキーボードグラブモードが設定されるSDL_Window
boolgrabbed真のときキーボードグラブする, 偽のとき解除する

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

キーボードをグラブすると, Alt+TabやMeta/Superキーのようなシステムキーボードショートカットを捕らえることができる. 全てのシステムキーボードショートカットをアプリケーションが捕らえることができるのではないので注意すること. (例えばWindowsのCtrl+Alt+Del)

これは主にVNCクライアントやVMフロントエンドのような特殊なアプリケーションを想定としている. 通常のゲーム等はキーボードをグラブすべきではない.

キーボードグラムを有効にしても, ウィンドウがフルスクリーンの場合は, SDLはユーザがアプリケーションから脱出できるようにAlt+Tabを処理する. フルスクリーンから脱出するショートカットを自分で作成する場合は, この動作をSDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBEDで無効にすること.

既に他のウィンドウがマウスグラブされている状態で別のウィンドウのマウスグラブを設定した場合, 元のウィンドウはマウスグラブを失い, 後に設定したウィンドウがマウスグラブを得る.

スレッドセーフ

この関数を呼べるのはメインスレッドのみである.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_SetWindowKeyboardGrab - SDL Wiki