Special events are handled at a very low level—as soon as they are
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.
Events that are handled in this way do not echo, they are never grouped
into key sequences, and they never appear in the value of
(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
These events do, however, appear in
after they are read, and this is the way for the event's definition to
find the actual event.
The events types
drag-n-drop, 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 Active Keymaps).