XGrabKey(3X11) — UNIX Programmer’s Manual
名称
XGrabKey, XUngrabKey − キーボードキーをグラブする
形式
XGrabKey(display, keycode, modifiers, grab_window, owner_events, pointer_mode,
keyboard_mode)
Display ∗display;
int keycode;
unsigned int modifiers;
Window grab_window;
Bool owner_events;
int pointer_mode, keyboard_mode; XUngrabKey(display, keycode, modifiers, grab_window)
Display ∗display;
int keycode;
unsigned int modifiers;
Window grab_window;
引数
displayX サーバへのコネクションを指定します。
grab_windowグラブウィンドウを指定します。
keyboard_mode
キーボードイベントの以後の処理を指定します。 GrabModeSync または GrabModeAsync を渡せます。
keycodeKeyCode または AnyKey を指定します。
modifiersキーマスクの集合または AnyModifier を指定します。 マスクは、有効なキーのマスクビットの論理和です。
owner_events
イベントマスクで選ばれた場合にポインタイベントを通常どおりに通知するか、 またはグラブウィンドウに関して通知するかを示すブール値を指定します。
pointer_mode
ポインタイベントの以後の処理を指定します。 GrabModeSync または GrabModeAsync を渡せます。
解説
XGrabKey 関数は、キーボードでパッシブグラブを設定します。 将来、 キーボードはアクティブにグラブされ、( XGrabKeyboard と同様に)、 最後のキーボードグラブ時間はキーが押された ( KeyPress イベントで送信された ) 時間に設定され、以下のすべての条件が真であれば、 KeyPress イベントが通知されます。
•キーボードがグラブされていず、指定されたモディファイアキーが論理的に ダウンであるとき指定されたキー(それ自身モディファイアキーになりうる) が論理的に押され、 論理的にダウンなそれ以外のモディファイアキーはない。
•grab_window がフォーカスウィンドウの先祖である (またはフォーカスウィンドウである)か、 あるいは grab_window がフォーカスウィンドウの子孫であり、 ポインタを含んでいる。
•同じキーの組合せのパッシブグラブが、 grab_window の先祖に存在しない。 残りの引数の解釈は、 XGrabKeyboard の場合と同じです。 アクティブグラブは、キーボードの論理的状態が、指定されたキーが解除 された状態になると、自動的に終了します (モディファイアキーの論理的状態とは無関係に)。 デバイスの論理的状態(クライアントアプリケーションからみた)は、 デバイスイベント処理がフリーズされた場合に物理的状態を遅らせることが あります。 AnyModifier のモディファイア (modifiers) は、 すべてのモディファイアの組合せ (モディファイアなしの組合せを含む)についてリクエストを出すのと 同じです。 指定されたすべてのモディファイアが現在割り当てられている KeyCodes を もっていることは要求されません。 AnyKey の keycode 引数は、 すべての KeyCodes についてリクエストを出すのと同じです。 さもなければ、指定されたキーコードは、コネクションセットアップのときの min_keycode と max_keycode で指定された範囲内になければなりません。 そうでない場合、 BadValue エラーが生じます。 他のあるクライアントが同じウィンドウの同じキー組合せで XGrabKey を出した場合、 BadAccess エラーが生じます。 AnyModifier または AnyKey を使用すると、 任意の組合せについて矛盾するグラブがあればリクエストは完全に失敗し、 BadAccess エラーが生じます(いかなるグラブも設定されません)。 .PN XGrabKey は、 BadAccess、 BadValue および BadWindow エラーが生じることがあります。 XUngrabKey 関数は、このクライアントによってグラブされた場合、 指定されたウィンドウのキー組合せを解除します。 アクティブグラブにはいかなる影響も与えません。 AnyModifier のモディファイアは、 すべてのモディファイアの組合せ (モディファイアなしの組合せを含む)についてリクエストを出すのと 同じです。 AnyKey の keycode 引数は、すべてのキーコードについてリクエストを出すのと 同じです。 .PN XUngrabKey は、 BadValue および BadWindow エラーを生じることがあります。
診断
BadAccess あるクライアントが、 別のクライアントがすでにグラブしたキー/ボタン組合せをグラブしようと した。
BadValue ある数値が許容範囲を超えた。 引数の値の範囲が明示されない限り、引数のタイプによって決まる最大の範囲 まで指定可能です。 選択形式の引数も、このエラーを生じることがあります。
BadWindow
Window 引数の値が定義された Window を指さない。
関連事項
XAllowAccess(3X11), XGrabButton(3X11), XGrabKeyboard(3X11), XGrabPointer(3X11)
Xlib − C Language X Interface
NEWS-OSRelease 3.3