DestroyNotify
ウィンドウが破棄されたときに配送されるX11のイベント。ウィンドウの生涯の反対側の端にあるのがCreateNotifyである。
XDestroyWindowはウィンドウ単体ではなくサブツリー全体を破棄し、DestroyNotifyは内側から外側へ、子が先、親が最後の順に配送される。ただし、明示的に破棄されるウィンドウはむしろ少数派だ。クライアントの接続が閉じると、サーバーはそのクライアントが作ったものをすべて片付け、同じイベントが送られる(クライアントがSetCloseDownModeで別の指定をしていなければ)。SubstructureNotifyMaskを持つ親は、子が作られるたびにCreateNotifyも受け取る。
ウィンドウマネージャーにとって、DestroyNotifyはクライアントの周りに作ったフレームを解体する合図である。タイミングが厄介で、イベントが届いた時点でウィンドウはすでに無く、それを参照する呼び出しはBadWindowを食らう。そのため、まさにこのエラーを黙って握りつぶすエラーハンドラは、ウィンドウマネージャーのコードではほぼ必須になる。クライアントは都合のいい時ではなく、好きな時に死ぬのだ。