XSetInputFocus(3) 入力フォーカスを制御する

Other Alias

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
ウィンドウ、 PointerRoot, None のいずれかを指定する。
focus_return
フォーカスウィンドウ、 PointerRoot, None のいずれかが返される。
revert_to
ウィンドウが表示不能になったときに入力フォーカスがどこに戻るかを指定する。 RevertToParent, RevertToPointerRoot, RevertToNone のいずれかを指定できる。
revert_to_return
現在のフォーカス状態 (RevertToParent, RevertToPointerRoot, RevertToNone のいずれか)が返される。
time
時刻を指定する。 タイムスタンプか CurrentTime を指定できる。

説明

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

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

  • focus が None の場合、新しいフォーカスウィンドウが設定されるまで全ての キーボードイベントは破棄され、引き数 revert_to は無視される。
  • focus がウィンドウの場合、このウィンドウがキーボードのフォーカスウィンドウとなる。 生成されたキーボードイベントがこのウィンドウやその下位ウィンドウの1つ に普通に報告された場合、そのイベントは通常通り報告される。 そうでない場合、イベントはフォーカスウィンドウに関するものとして報告される。
  • focus が PointerRoot の場合はフォーカスウィンドウは動的に決定され、各キーボードイベントが起 きたときにポインタがあった任意のスクリーンのルートウィンドウとなる。 この場合、引き数 revert_to は無視される。

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

  • revert_to が RevertToParent ならば、フォーカスは親ウィンドウ(あるいは最も近い表示可能な祖先ウィン ドウ)に戻り、revert_to の新しい値は RevertToNone となる。
  • revert_to が RevertToPointerRoot の場合にはフォーカスは PointerRoot に戻り、 RevertToNone の場合には None に戻る。 フォーカスが戻ったときには X サーバは FocusIn イベントと FocusOut を生成するが、最終フォーカス変更時刻は影響を受けない。

XSetInputFocus はエラー BadMatch, BadValue, BadWindow を起こすことがある。

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

返り値

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