AllowEvents
同期グラブで凍結されたポインタやキーボードを解凍するXのリクエスト。ReplayPointer モードでは、横取りなどなかったかのようにクリックをもう一度配送できる。
GrabModeSync のグラブは、最初のイベントの後でデバイスを凍結する。サーバーは後続のイベントをすべてキューに溜め、クライアントが決心して XAllowEvents を呼ぶまで待つ。モードは AsyncPointer(キューを解放し、凍結をやめる)、SyncPointer(もう一つだけ通して再び凍結する)、ReplayPointer の3種で、キーボード版と SyncBoth/AsyncBoth もある。
Xでクリックでフォーカスが成立するのは ReplayPointer のおかげだ。ウィンドウマネージャは、すべてのクライアントウィンドウ上のマウスボタンに、パッシブな同期グラブを掛けている。クリックされるとまず自分がイベントを見て、ウィンドウにフォーカスを与えて前面に出し、それからクリックを再送する。今度は自分のグラブを通り抜けるので、アプリケーションにも届く。この呼び出しを忘れたウィンドウマネージャは、グラブが終わるまでポインタが凍結したままになり、ユーザーには画面全体がロックしたように感じられる。