ICCCM追従レベルの測定

それぞれのウィンドウマネージャのICCCM追従レベルをxcomplianceで調べてみます。結果は次の通りです。

ウィンドウマネージャ WM_Snセレクションを所有する VERSIONセレクションを所有する WM_TAKE_FOCUSメッセージのdata[1]フィールドにCurrentTimeを使用しない WM_DELETE_WINDOWメッセージのdata[1]フィールドにCurrentTimeを使用しない
twm
(R6.3付属)
✕ ✕ ○ ○
qvwm
1.1.11
✕ ✕ ✕ ✕
WindowMaker
0.20.2
✕ ✕ マップ直後のWM_TAKE_FOCUSメッセージを除けば○ ○
enlightment
0.14
✕ ✕ ✕ ✕
mwm
0.83
✕ ✕ マップ直後のWM_TAKE_FOCUSメッセージを含めて○ ✕
blackbox
0.34.0
✕ ✕ ✕
(WM_TAKE_FOCUSメッセージが来ない...)
✕
icewm
0.9.18
✕ ✕ ✕ ✕
kwm ✕ ✕ マップ直後のWM_TAKE_FOCUSメッセージを含めて○ ○

ICCCM 2.0以降を満たすものはないようです。

qvwmへのパッチ

上記のように、qvwmではWM_TAKE_FOCUSメッセージのdata[1]フィールドにCurrentTimeが使用されています。このままではLocalActive(局所的に能動的な)フォーカスモデルを利用するXクライアントで不都合が生じるので、その場しのぎのパッチを作成してみました。パッチの当て方は、次の通りです。

% tar zxvf qvwm-1.1.11.tar.gz
% cd qvwm-1.1.11/src
% gzip -dc どこか/qvwm-1.1.11-icccm.patch-1.gz | patch

パッチを当てた後のICCCM追従レベルは次の通りです。

ウィンドウマネージャ WM_Snセレクションを所有する VERSIONセレクションを所有する WM_TAKE_FOCUSメッセージのdata[1]フィールドにCurrentTimeを使用しない WM_DELETE_WINDOWメッセージのdata[1]フィールドにCurrentTimeを使用しない
バッチ後のqvwm
1.1.11
✕ ✕ マップ直後のWM_TAKE_FOCUSメッセージを除けば○ ○

過去のバージョンのパッチ