某些 特殊事件(special events) 会在极低层级被处理——一旦被读取就立即处理。
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 中(see 控制活跃按键映射表)。