XGrabKeyboard(3X11) — UNIX Programmer’s Manual
名称
XGrabKeyboard, XUngrabKeyboard − キーボードをグラブする
形式
int XGrabKeyboard(display, grab_window, owner_events, pointer_mode, keyboard_mode, time)
Display ∗display;
Window grab_window;
Bool owner_events;
int pointer_mode, keyboard_mode;
Time time; XUngrabKeyboard(display, time)
Display ∗display;
Time time;
引数
displayX サーバへのコネクションを指定します。
grab_windowグラブウィンドウを指定します。
keyboard_mode
キーボードイベントの以後の処理を指定します。 GrabModeSync または GrabModeAsync を渡せます。
owner_events
イベントマスクで選ばれた場合にポインタイベントを通常どおりに 通知するか、またはグラブウィンドウに関して通知するかを示すブール値を 指定します。
pointer_mode
ポインタイベントの以後の処理を指定します。 GrabModeSync または GrabModeAsync を渡せます。
time時間を指定します。 タイムスタンプまたは CurrentTime を渡せます。
解説
XGrabKeyboard 関数は、キーボードの制御をアクティブにグラブし、 FocusIn および FocusOut イベントを発生します。 他のキーイベントは、グラブするクライアントにだけ通知されます。 XGrabKeyboard は、このクライアントによるアクティブなキーボードグラブを無視します。 owner_events が False であれば、 grab_window に関してすべてのキーイベントが通知されます。 owner_events が True で、発生したキーイベントが通常、このクライアントに通知される場合、 これは通常どおりに通知されます。さもなければ、 grab_window に関するイベントが通知されます。 KeyPress および KeyRelease の両イベントは、クライアントによるイベントセレクションとは無関係に、 必ず通知されます。 keyboard_mode 引数が GrabModeAsync であれば、キーボードイベント処理は通常どおりに続行します。 もしキーボードが現在このクライアントによってフリーズされているならば、 キーボードイベントの処理は再開されます。 keyboard_mode 引数が GrabModeSync であれば、キーボードの状態(クライアントアプリケーションからみた)は フリーズし、X サーバは、グラブしているクライアントが解除のため XAllowEvents コールを出すまでまたはキーボードグラブが解除されるまで、 それ以降いかなるキーボードイベントも発生しません。 実際のキーボードの変化は、キーボードがフリーズされている間、 失われません。 これらは、後に処理するよう、サーバのキューに入れられるにすぎません。 pointer_mode が GrabModeAsync であれば、 ポインタイベント処理はグラブの動作に影響されません。 pointer_mode が GrabModeSync であれば、 ポインタの状態(クライアントアプリケーションからみた)はフリーズし、 X サーバは、グラブしているクライアントが解除のため XAllowEvents コールを出すまでまたはキーボードグラブが解除されるまで、 それ以降いかなるポインタイベントも発生しません。 実際のポインタの変化は、ポインタがフリーズされている間、失われません。 これらは、後に処理するよう、サーバのキューに入れられるにすぎません。 キーボードが他のあるクライアントによってアクティブにグラブされた場合、 XGrabKeyboard は失敗し、 AlreadyGrabbed を返します。 grab_window が viewable でなければ、 XGrabKeyboard は失敗し、 GrabNotViewable を返します。 キーボードが別のクライアントのアクティブグラブによってフリーズされた 場合、 XGrabKeyboard は失敗し、 GrabFrozen を返します。 指定された時間が最後のキーボードグラブ時間の前か、 または現在の X サーバの時間の後であれば、 失敗し、 GrabInvalidTime を返します。 さもなければ、最後のキーボードグラブ時間は、指定された時間に 設定されます (CurrentTime は、現在の X サーバの時間に置換されます )。 .PN XGrabKeyboard は、 BadValue および BadWindow エラーを生じることがあります。 XUngrabKeyboard 関数は、このクライアントが XGrabKeyboard または XGrabKey からアクティブにグラブさせた場合、キーボードおよびキューに入れた イベントを解除します。 指定された時間が最後のキーボードグラブ時間より前かまたは現在の X サーバ の時間より後であれば、 XUngrabKeyboard はキーボードおよびキューに入れられたイベントを解除しません。 また、 FocusIn および FocusOut イベントを発生します。 アクティブなキーボードグラブのイベントウィンドウが viewable でなくなれば、X サーバは自動的に UngrabKeyboard リクエストを出します。
診断
BadValue ある数値が許容範囲を超えた。 引数の値の範囲が明示されない限り、引数のタイプによって決まる最大の範囲 まで指定可能です。 選択形式の引数も、このエラーを生じることがあります。
BadWindow
Window 引数の値が定義された Window を指さない。
関連事項
XAllowEvents(3X11), XGrabButton(3X11), XGrabKey(3X11), XGrabPointer(3X11)
Xlib − C Language X Interface
NEWS-OSRelease 3.3