elisp: Special Events

 
 20.9 Special Events
 ===================
 
 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’ (SeeActive Keymaps).