SendEvent (X11)
あるクライアントが、別のプログラムのウィンドウへ偽造したイベントを渡せるX11のリクエスト。偽造だと分かる印が付く。
XSendEventを使うと、クライアントはKeyPress、ConfigureNotify、ClientMessageなど好きなイベントを組み立て、特定のウィンドウ、ポインタの下にあるもの、フォーカスを持つものへ配送するよう頼める。サーバーはペイロードを検査しないが、イベントコードの最上位ビットを立てる。受け手はこれをsend_eventフィールドとして見て、人間が何も押していないと分かる。
このフラグはセキュリティのためにある。xtermは、既定で合成キー入力を無視する(allowSendEventsリソースがオフ)。そうしないと、同じディスプレイ上の任意のクライアントが他人のシェルにコマンドを打ち込めてしまうからだ。そのために作られたのが、本物に見えるイベントを生成するXTESTである。一方ICCCMは、フラグを本来の意図どおりに使う。ウィンドウマネージャーは、枠付きのウィンドウを動かしたあと、ルート座標つきの合成ConfigureNotifyを送らなければならない。