Certain special events are handled at a very low level—as soon
as they are read. The read-event
function processes these
events itself, and never returns them. Instead, it keeps waiting for
the first event that is not special and returns that one.
Special events do not echo, they are never grouped into key
sequences, and they never appear in the value of
last-command-event
or (this-command-keys)
. They do not
discard a numeric argument, they cannot be unread with
unread-command-events
, they may not appear in a keyboard macro,
and they are not recorded in a keyboard macro while you are defining
one.
Special events do, however, appear in last-input-event
immediately after they are read, and this is the way for the event’s
definition to find the actual event.
The events types iconify-frame
, make-frame-visible
,
delete-frame
, drag-n-drop
, language-change
, and
user signals like sigusr1
are normally handled in this way.
The keymap which defines how to handle special events—and which
events are special—is in the variable special-event-map
(see Controlling the Active Keymaps).