/* generated on EnterWindow and FocusIn when KeymapState selected */ typedef struct { int type; /* KeymapNotify */ unsigned long serial; /* 最後にサーバに処理されたリクエストの番号 */ Bool send_event; /* SendEvent リクエストから送られてきた場合に真 */ Display *display; /* イベントが読み出されたディスプレイ */ Window window; char key_vector[32]; } XKeymapEvent;
このイベントを受け取ったとき、構造体の内容は以下のように設定されている。
type メンバには、イベントの型を一意に識別する定数名が設定される。 例えば、X サーバがクライアントアプリケーションに GraphicsExpose イベントを通知するとき、X サーバは type メンバに GraphicsExpose を設定した XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されたディスプレイへのポインタが 設定される。 send_event メンバには、このイベント自身が SendEvent プロトコルリクエストから送られてきた場合に True が設定される。 serial メンバはプロトコルで通知されたシリアル番号を基に設定される。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。
window メンバには、ツールキットのディスパッチャが最も便利に使えるウィ ンドウが設定される。 key_vector メンバには、キーボードのビットベクトルが設定される。 あるビットに1が設定されている場合は、対応するキーが現在押されている ことを表す。 このベクトルは32バイトで表現される。 バイト N(0から始まる)は、キー 8N から 8N+7 に対応するビットを持つ。 このバイトの最下位ビットがキー 8N に対応する。