XSetInputFocus(3X11)

名前
XSetInputFocus, XGetInputFocus - 入力フォーカスを制御

書式
XSetInputFocus(display, focus, revert_to, time)
      Display *display;
      Window focus;
      int revert_to;
      Time time;

XGetInputFocus(display, focus_return, revert_to_return)
      Display *display;
      Window *focus_return;
      int *revert_to_return;

引き数

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

focus
    ウィンドウ、 のいずれかを指定。

focus_return
    フォーカスウィンドウ、 のいずれかを指定。

revert_to
    ウィンドウが表示不能になったときに入力フォーカスがどこに戻るかを指定。 のいずれかを渡すことができる。

revert_to_return
    現在のフォーカス状態 のいずれか)を返す。

time
    時刻を指定。 タイムスタンプか を指定することができる。

説明
は入力フォーカスと最終フォーカス変更時刻(last-focus-change time)を変更 する。 指定した時刻が最終フォーカス変更時刻より早い場合やX サーバの現在時刻よ りも遅い場合には、この関数は何も行わない。 そうでない場合には、最終フォーカス変更時刻は指定した時刻にセットされる はXサーバの現在時刻で置き換えられる)。 により X サーバは イベントと イベントを生成する。

引き数 focus の値により関数の動作は以下のようになる。

•   focus が の場合、新しいフォーカスウィンドウがセットされるまで全てのキーボードイ ベントは破棄され、引き数 revert_to は無視される。

•   focus がウィンドウの場合、このウィンドウがキーボードのフォーカスウィンドウとなる。 生成されたキーボードイベントがこのウィンドウやその下位ウィンドウの1つ に普通に通知された場合、そのイベントは通常通り通知される。 そうでない場合、イベントはフォーカスウィンドウに関連づけて通知される。

•   focus が の場合、フォーカスウィンドウは動的に各キーボードイベントごとにポインタ がある任意のスクリーンのルートウィンドウにされる。 この場合、引き数 revert_to は無視される。

指定したフォーカスウィンドウは、 が呼び出されたときに表示可能でなければならない。 そうでなければ関数呼び出しは エラーとなる。 フォーカスウィンドウが後で表示不能になった場合、 X サーバは引き数 revert_to を評価し、以下のようにして新しいフォーカスウィ ンドウを決定する。

•   revert_to が ならば、フォーカスは親ウィンドウ(あるいは最も近い表示可能な祖先ウィン ドウ)に戻り、revert_to の新しい値は となる。

•   revert_to が の場合にはフォーカスは に戻り、 の場合には に戻る。 フォーカスが戻ったときには X サーバは イベントと を生成するが、最終フォーカス変更時刻は変化しない。

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

関数 はフォーカスウィンドウと現在のフォーカス状態を返す。

返り値

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

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

関連項目
XWarpPointer(3X11)
Xlib - C Language X Interface