XSelectInput(3) 入力イベントを選択する

書式

XSelectInput(display, w, event_mask)

      Display *display;

      Window w;

      long event_mask;

引き数

display
X サーバへの接続を指定する。
event_mask
イベントマスクを指定する。 注目するイベントが起きる
w
ウィンドウを指定する。

説明

関数 XSelectInput は、指定したイベントマスクに関連するイベントを通知するように X サーバ に要求する。 初期状態では、X サーバはこのようなイベントは一切通知しない。 イベントはウィンドウに関連づけて通知される。 ウィンドウがデバイスイベントに注目していなければ、このイベントは通常、 そのイベントに注目している最も近い祖先ウィンドウに伝播する。

ウィンドウのイベントマスク属性の設定により、同じウィンドウに対する以前 の設定を上書きできるが、他のクライアントのものは上書きできない。 以下の制限付きで、複数クライアントが同じウィンドウの同じイベントを選択 することができる。

  • 複数クライアントが同じウィンドウのイベントを選択できるのは、 イベントマスクが互いに共通部分を持たないからである。 X サーバがイベントを生成したとき、そのイベントに注目する全ての クライアントに通知される。
  • 同時に1つのクライアントだけが CirculateRequest, ConfigureRequest, MapRequest イベントを選択できる。 これらはイベントマスク SubstructureRedirectMask に関連づけられている。
  • 同時に1つのクライアントだけが ResizeRequest イベントを選択できる。 これはイベントマスク ResizeRedirectMask に関連づけられている。
  • 同時に1つのクライアントだけが ButtonPress イベントを選択できる。 これはイベントマスク ButtonPressMask に関連づけられている。

サーバはイベントに注目している全てのクライアントにイベントを通知する。

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

返り値

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