mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-09 13:10:57 -08:00
(Misc Events): User signals now result in sigusr1
and sigusr2 events which are handled through special-event-map. (Special Events): User signals and drag-n-drop are special.
This commit is contained in:
parent
6a7d16fe7a
commit
f68903b317
1 changed files with 27 additions and 7 deletions
|
|
@ -1586,14 +1586,33 @@ The precise meaning of the event parameters and the way these
|
|||
parameters are used to display the help-echo text are described in
|
||||
@ref{Text help-echo}.
|
||||
|
||||
@cindex @code{signal usr1} event
|
||||
@cindex @code{signal usr2} event
|
||||
@cindex @code{sigusr1} event
|
||||
@cindex @code{sigusr2} event
|
||||
@cindex user signals
|
||||
@item signal usr1
|
||||
@itemx signal usr2
|
||||
These event sequences are generated when the Emacs process receives
|
||||
@item sigusr1
|
||||
@itemx sigusr2
|
||||
These events are generated when the Emacs process receives
|
||||
the signals @code{SIGUSR1} and @code{SIGUSR2}. They contain no
|
||||
additional data because signals do not carry additional information.
|
||||
|
||||
To catch a user signal, bind the corresponding event to an interactive
|
||||
command in the @code{special-event-map} (@pxref{Active Keymaps}).
|
||||
The command is called with no arguments, and the specific signal event is
|
||||
available in @code{last-input-event}. For example:
|
||||
|
||||
@example
|
||||
(defun sigusr-handler ()
|
||||
(interactive)
|
||||
(message "Caught signal %S" last-input-event))
|
||||
|
||||
(define-key special-event-map [sigusr1] 'sigusr-handler)
|
||||
@end example
|
||||
|
||||
To test the signal handler, you can make Emacs send a signal to itself:
|
||||
|
||||
@example
|
||||
(signal-process (emacs-pid) 'sigusr1)
|
||||
@end example
|
||||
@end table
|
||||
|
||||
If one of these events arrives in the middle of a key sequence---that
|
||||
|
|
@ -2634,8 +2653,9 @@ These events do, however, appear in @code{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 @code{iconify-frame}, @code{make-frame-visible} and
|
||||
@code{delete-frame} are normally handled in this way. The keymap which
|
||||
The events types @code{iconify-frame}, @code{make-frame-visible},
|
||||
@code{delete-frame}, @code{drag-n-drop}, and user signals like
|
||||
@code{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 @code{special-event-map} (@pxref{Active Keymaps}).
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue