X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/587a49abfbb988ea16cc2b6dcad3b532fabd27ff..5078c8abf35fd1166acd6e2251a65831cc87611d:/src/termhooks.h diff --git a/src/termhooks.h b/src/termhooks.h index b6050cde25..e129fa2a8a 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -215,6 +215,12 @@ enum event_kind which the key was typed. .timestamp gives a timestamp (in milliseconds) for the keystroke. */ + multibyte_char_keystroke, /* The multibye char code is in .code, + perhaps with modifiers applied. + The others are the same as + ascii_keystroke. This type of event + is generated only when we are using + XIM on X window. */ non_ascii_keystroke, /* .code is a number identifying the function key. A code N represents a key whose name is @@ -283,7 +289,7 @@ enum event_kind selection_clear_event, /* Another X client cleared our selection. */ buffer_switch_event, /* A process filter has switched buffers. */ delete_window_event, /* An X client said "delete this window". */ - menu_bar_event, /* An event generated by the menu bar. + MENU_BAR_EVENT, /* An event generated by the menu bar. The frame_or_window field's cdr holds the Lisp-level event value. (Only the toolkit version uses these.) */ @@ -304,17 +310,23 @@ enum event_kind the filenames of the dropped files. .timestamp gives a timestamp (in milliseconds) for the click. */ - user_signal, /* A user signal. - .code is a number identifying it, + USER_SIGNAL_EVENT, /* A user signal. + code is a number identifying it, index into lispy_user_signals. */ - /* Currently only returned when the mouse enters a tool-bar item that - has a help string. Member frame_or_window of the input_event is - a cons cell whose car is the tool-bar's frame and whose cdr is the - help string. */ + /* Help events. Member `frame_or_window' of the input_event is the + frame on which the event occurred, and member `arg' contains + the help to show. */ HELP_EVENT, - TOOL_BAR_EVENT + /* An event from a tool-bar. Member `arg' of the input event + contains the tool-bar item selected. If `frame_or_window' + and `arg' are equal, this is a prefix event. */ + TOOL_BAR_EVENT, + + /* Queued from XTread_socket on FocusIn events. Translated into + `switch-frame' events in kbd_buffer_get_event, if necessary. */ + FOCUS_IN_EVENT }; /* If a struct input_event has a kind which is selection_request_event @@ -328,11 +340,11 @@ enum event_kind struct input_event { - /* What kind of event was this? */ int kind; - /* For an ascii_keystroke, this is the character. + /* For an ascii_keystroke and multibyte_char_keystroke, this is the + character. For a non_ascii_keystroke, this is the keysym code. For a mouse event, this is the button number. */ /* In WindowsNT, for a mouse wheel event, this is the delta. */ @@ -355,6 +367,10 @@ struct input_event /* This field is last so that struct selection_input_event does not overlap with it. */ Lisp_Object frame_or_window; + + /* Additional event argument. This is used for TOOL_BAR_EVENTs and + HELP_EVENTs and avoids calling Fcons during signal handling. */ + Lisp_Object arg; }; /* Called to read input events. */