XGrabKeyboard(3X11)

名前
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;

引き数

display
    X サーバへの接続を指定。

grab_window
    グラブウィンドウを指定。

keyboard_mode
    キーボードイベントの後処理を指定。 あるいは を指定する。

owner_events
    キーボードイベントを通常通り通知するのかどうか指示する真偽値を指定。

pointer_mode
    ポインタイベントの後処理を指定。 あるいは を指定する。

time
    時刻を指定する。 タイムスタンプか を渡す。

説明
関数 はキーボードの制御をアクティブにグラブし、 イベントと イベントを生成する。 以降のキーイベントはグラブウィンドウのみに通知される。 はこのクライアントによる全てのアクティブなグラブを上書きする。 owner_events が ならば、生成された全てのキーイベントは grab_window に対して通知される。 owner_events が の場合は、生成されたキーイベントが通常はこのクライアントに通知されるは ずならば、このイベントは通常通りに通知される。そうでないならば、このイ ベントは grab_window に対して通知される。 イベントと イベントのいずれも、クライアントによるイベント選択とは関係なく常に通知 される。

引き数 keyboard_mode が ならば、キーボードイベント処理は通常通り続けられる。 キーボードがこのクライアントによって現在凍結されているならば、キーボー ドイベントの処理は再開される。 引き数 keyboard_mode が ならば、キーボードの状態(クライアントアプリケーションが見る)は凍結され ていると考えられる。この場合は、グラブを行っているクライアントが解放を行う の呼び出しを行うか、キーボードのグラブが解放されるまでは、X サーバは以 降のキーボードイベントを生成しない。 キーボードが凍結されている間。キーボードの実際の変化は失われない。これ らは単にサーバのキューに入れられており、後で処理される。

pointer_mode が ならば、ポインタイベントの処理はグラブのアクティブ化の影響は受けない。 pointer_mode が ならば、ポインタの状態(クライアントアプリケーションが見る)は凍結されて いると考えられる。この場合は、グラブを行っているクライアントが解放を行 う の呼び出しを行うか、キーボードのグラブが解放されるまでは、X サーバは以 降のポインタイベントを生成しない。 ポインタが凍結されている間。ポインタの実際の変化は失われない。これらは 単にサーバのキューに入れられており、後で処理される。

キーボードが他のクライアントによってアクティブにグラブされている場合、 は失敗し、 を返す。 grab_window が表示可能でない場合、この関数は失敗し、 を返す。 キーボードが他のクライアントのアクティブなグラブによって凍結されている 場合、関数は失敗し、 を返す。 指定した時刻が最終キーボードグラブ時刻よりも早い場合や、X サーバの現在 時刻よりも遅い場合には関数は失敗し、 を返す。 そうでない場合は、最終キーボードグラブ時刻には指定した時刻 は X サーバの現在時刻に置き換えられる)がセットされる。

はエラー を起こすことがある。

関数 は、このクライアントが や によってアクティブなグラブを行っているならば、キーボードとキューに入っ ているイベントを解放する。 指定した時刻が最終キーボードグラブ時刻より早い場合や、Xサーバの現在時 刻よりも遅い場合には、 はキーボードとキューに入っているイベントの解放は行わない。 また、この関数は イベントと を生成する。 アクティブなキーボードグラブに対するイベントウィンドウが表示不可能にな ると、X サーバは自動的に リクエストを行う。

返り値

指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

引き数 Window の値が、定義されている Window を指していない。

関連項目
XAllowEvents(3X11), XGrabButton(3X11), XGrabKey(3X11), XGrabPointer(3X11)
Xlib - C Language X Interface