特定のスペシャルイベント(special
event)は、読み取られると即座に非常に低レベルで処理されます。read-event
関数はそれらのイベントを自身で処理してそれらを決してリターンしません。かわりにスペシャルイベント以外の最初のイベントを待ってそれをリターンします。
スペシャルイベントはエコーされず、決してキーシーケンスにグループ化されず、last-command-event
や(this-command-keys)
の値として出現することもありません。スペシャルイベントは数引数を破棄して、unread-command-events
による読み戻しができず、キーボードマクロ内に出現することもなく、キーボードマクロ定義中にキーボードマクロに記録されることもありません。
しかしスペシャルイベントは読み取られた直後にlast-input-event
内に出現するので、これがイベント定義にたいして実際のイベントを探す方法になります。
イベント型iconify-frame
、make-frame-visible
、delete-frame
、drag-n-drop
、language-change
、およびsigusr1
ようなユーザーシグナルは通常はこの方法によって処理されます。何がスペシャルイベントで、スペシャルイベントをどのように処理するかを定義するキーマップは変数special-event-map
(アクティブなキーマップの制御を参照)の中にあります。