SetInputFocus
キーボード入力をどのウィンドウに送るか、そしてそのウィンドウが消えたらどうなるかを決めるXプロトコルのリクエスト。
引数は3つある。対象はウィンドウのほか、すべてのキー入力を捨てるNone、あるいはポインタのある画面のルートウィンドウにフォーカスを与えるPointerRoot(実質的にはマウスの下にあるウィンドウ)を指定できる。ウィンドウマネージャなしで動くXサーバーの初期状態がこれで、Xでフォーカス追従マウスが自然に感じられた理由の大きな部分である。revert_toは、そのウィンドウが表示されなくなったときにフォーカスを親へ、PointerRootへ、あるいはどこにも渡さないかを指定する。表示されていないウィンドウを対象にするとBadMatchになる。
3つ目の引数はタイムスタンプで、直近のフォーカス変更より古ければサーバーはリクエストを黙って無視する。そのためICCCMはクライアントがCurrentTimeを渡すことを禁じている。2秒前のクリックに今ごろ反応する鈍いプログラムが、ユーザーがすでに移動した先のウィンドウからフォーカスを奪うのを防ぐためだ。このルールを守るプログラムは多くない。