other versions
- wheezy 4.1.0.20011224-6
XAllowDeviceEvents(3X11) | X FUNCTIONS | XAllowDeviceEvents(3X11) |
名前¶
XAllowDeviceEvents - キューに入っているイベントを解放する書式¶
XAllowDeviceEvents( display, device, event_mode, time)Display * display;
XDevice * device;
int event_mode;
Time time;
引き数¶
- display
- X サーバへの接続を指定。
- device
- イベントの取得が許可されるデバイスを指定。
- event_mode
- イベントのモードを指定。 AsyncThisDevice, SyncThisDevice, ReplayThisDevice, AsyncOtherDevices, SyncAll, AsyncAll のいずれかを指定する。
- time
- 時刻を指定。 タイムスタンプか CurrentTime を指定する。
説明¶
関数 XAllowDeviceEvents は、クライアントがデバイスを凍結している場合、キューに入っているイベン トを解放する。 指定された時刻よりもクライアントとデバイスについての最も最近のアクティ ブなグラブの最終グラブ時刻より早い場合や、X サーバの現在時刻よりも遅い 場合には、この関数は無効である。 以下では、引き数 event_mode に渡した定数によって決まる関数の動作について 述べる。-
AsyncThisDevice - クライアントがデバイスを凍結している場合、そのデバイスについてのイベン ト処理は通常通り継続される。デバイスが複数の別々のグラブのために複数回 凍結されている場合は、 AsyncThisDevice は全ての凍結を解除する。 クライアントが指定したデバイスを凍結していない場合、 AsyncThisDevice は無効であるが、クライアントがデバイスをグラブし ている必要はない。
- SyncThisDevice
- クライアントが指定したデバイスを凍結し、アクティブにグラブしている場合、 そのデバイスに対するイベント処理は、次のキーイベントかボタンイベントが クライアントに通知されるまで通常通り続く。このとき、指定したデバイスは 再び凍結されたように見える。しかし、通知されたイベントはグラブを解放し、 指定したデバイスは凍結されない。 SyncThisDevice は、指定されたデ バイスがクライアントに凍結されていない場合や、クライアントにグラブされ ていない場合は無効である。
- ReplayThisDevice
- 指定されたデバイスがクライアントにアクティブにグラブされ、クライアント に送られたイベントの結果として凍結されている場合(これは GrabDeviceButton のアクティブ化や SyncThisDevice モードの 前の AllowDeviceEvents で生じ、GrabDevice では生じない)、グラブは解放 され、そのイベントは全て再処理される。しかしこの場合、リクエストは解放 されたばかりのグラブのグラブウィンドウか、その上(ルートウィンドウに向 かう方向)のウィンドウの全てのパッシブなグラブを無視する。指定したデバ イスがクライアントにグラブされていない場合か、イベントの結果として凍結 されていない場合には、リクエストは無効である。
- AsyncOtherDevices
- 残りのデバイスがクライアントに凍結されている場合、これらに対するイベン ト処理は通常通り続けられる。他のデバイスが複数のグラブのためにクライア ントに複数回凍結されている場合、 AsyncOtherDevices はこれら全ての 凍結を「解除」する。クライアントがデバイスを凍結していない場合、 AsyncOtherDevices は無効である。
- SyncAll
- クライアントが全てのデバイスを凍結している場合、(全てのデバイスについ ての)イベント処理は、グラブされたデバイスへの次のボタンイベントかキー イベントがクライアントに通知されるまでは通常通り継続する。この時は全て のデバイスは再び凍結されているように見える。 しかし、通知されたイベントがグラブを解放したならば、デバイスは凍結され ない。まだグラブされているデバイスがあれば、これに対する後のイベントは 全てのデバイスを凍結させる。全てのデバイスがクライアントに凍結されてい ない限り、 SyncAll は無効である。複数の別々のグラブのためにクライ アントが2度凍結された場合、 SyncAll は両方の凍結を解除する。これ に続く SyncAll に対する凍結は、それぞれのデバイスを1度だけ凍結す る。
- AsyncAll
- 全てのデバイスがクライアントによって凍結されている場合、全てのイベント 処理は通常通り継続される。複数の異なるグラブのためにクライアントが複数 回デバイスを凍結した場合、 AsyncAll は全ての凍結を解除する。全て のデバイスがクライアントによって凍結されていない限り、 AsyncAll は無効である。
返り値¶
- BadDevice
- 不正なデバイスが指定された。指定したデバイスが存在しないか、クライアン トが XOpenInputDevice でデバイスをオープンしていない。指定したデ バイスが X のキーボードデバイスや X のポインタデバイスである場合にも、 このエラーが起こる。
- BadValue
- リクエストで不正なモードが指定された。
関連項目¶
XGrabDevice(3X11)Release 6.5 | X Version 11 |