Login
Immutable PageDiscussionInfoAttachments
clear/wm_devel/2013-02-09

MMA

入力フォーカスについて

ICCCM 4.1.7および4.2.7にフォーカスの扱いに関するあれこれが書いてあるがとても分かりにくい。とりあえず、WMの視点で必要な情報をまとめる。

入力モデル

ICCCMではキーボード入力の扱い方に関して4通りの方法が示されている。WMがこれを無視すると使い物にならなくなる。

クライアントがどの入力モデルを採用しているかは、WM_HINTSプロパティのInputフィールドの値、および当該クライアントがWM_TAKE_FOCUSプロトコルに対応しているか、の組み合わせで示される。

入力モデル

WM_HINTSのInputフィールド

WM_TAKE_FOCUS

No Input

False

非対応

Passive

True

非対応

Locally Active

True

対応

Globally Active

False

対応

フォーカスの設定

フォーカスの設定はSetInputFocusリクエストを送ることで行う。

タイムスタンプについて

クライアント間の競合状態(レースコンディション)を防ぐためにタイムスタンプが使われる。

Xサーバは以下の時刻を保持しているらしい:

clear/wm_devel/2013-02-09 (last edited 2013-02-09 22:35:57 by clear)