XDestroyWindow

これまで、XCloseDisplayでXサーバとのセッションを切断して、そのままプログラム終了という形で書いてきたが、正しいウィンドウの閉じ方、終了の仕方ではないので、XDestroyWindowでウィンドウを閉じる。

Manpage of XDestroyWindow
X Window System(X11)のプログラムを正常に終了させる方法 - Qiita

ClientMessageで、WM_DELETE_WINDOWなら、XDestroyWindowでウィンドウを破棄。
そうすると、

DestroyNotifyに来るので、XCloseDisplayとプログラムの終了である"return 0;"を通る。
これが正しいプログラム終了と。

で、これで実際に動かしてみたら、DestroyNotifyに来ない。

clear/wm_devel/2011-08-16 - 電気通信大学MMA

どうもStructureNotifyMaskが必要みたいで、

こうすると、

表示しているがここでウィンドウを閉じる
表示しているがここでウィンドウを閉じる

この状態から閉じると、

DestroyNotifyに来ている
DestroyNotifyに来ている

DestroyNotifyに来ているのがわかる。

Sample/xlib/XDestroyWindow/XDestroyWindow/src/XDestroyWindow at master · bg1bgst333/Sample · GitHub