summaryrefslogtreecommitdiff
path: root/src/termhooks.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/termhooks.h')
-rw-r--r--src/termhooks.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/termhooks.h b/src/termhooks.h
index d21d6ce588a..81e06d9c368 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -158,6 +158,9 @@ 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". */
+#ifdef HAVE_NTGUI
+ END_SESSION_EVENT, /* The user is logging out or shutting down. */
+#endif
MENU_BAR_EVENT, /* An event generated by the menu bar.
The frame_or_window field's cdr holds the
Lisp-level event value.
@@ -628,6 +631,11 @@ struct terminal
/* Called when a frame's display becomes entirely up to date. */
void (*frame_up_to_date_hook) (struct frame *);
+ /* Called when buffer flipping becomes unblocked after having
+ previously been blocked. Redisplay always blocks buffer flips
+ while it runs. */
+ void (*buffer_flipping_unblocked_hook) (struct frame *);
+
/* Called to delete the device-specific portions of a frame that is
on this terminal device. */
@@ -646,6 +654,19 @@ struct terminal
void (*delete_terminal_hook) (struct terminal *);
};
+INLINE bool
+TERMINALP (Lisp_Object a)
+{
+ return PSEUDOVECTORP (a, PVEC_TERMINAL);
+}
+
+INLINE struct terminal *
+XTERMINAL (Lisp_Object a)
+{
+ eassert (TERMINALP (a));
+ return XUNTAG (a, Lisp_Vectorlike);
+}
+
/* Most code should use these functions to set Lisp fields in struct
terminal. */
INLINE void