summaryrefslogtreecommitdiff
path: root/src/xwidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xwidget.h')
-rw-r--r--src/xwidget.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/xwidget.h b/src/xwidget.h
index 1a742318271..1b6368daabf 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -47,7 +47,9 @@ struct xwidget
/* A title used for button labels, for instance. */
Lisp_Object title;
- /* Here ends the Lisp part. "height" is the marker field. */
+ /* Vector of currently executing scripts with callbacks. */
+ Lisp_Object script_callbacks;
+ /* Here ends the Lisp part. script_callbacks is the marker field. */
int height;
int width;
@@ -58,15 +60,14 @@ struct xwidget
/* Kill silently if Emacs is exited. */
bool_bf kill_without_query : 1;
-};
+} GCALIGNED_STRUCT;
struct xwidget_view
{
union vectorlike_header header;
Lisp_Object model;
Lisp_Object w;
-
- /* Here ends the lisp part. "redisplayed" is the marker field. */
+ /* Here ends the lisp part. "w" is the marker field. */
/* If touched by redisplay. */
bool redisplayed;
@@ -85,13 +86,13 @@ struct xwidget_view
int clip_left;
long handler_id;
-};
+} GCALIGNED_STRUCT;
#endif
/* Test for xwidget pseudovector. */
#define XWIDGETP(x) PSEUDOVECTORP (x, PVEC_XWIDGET)
#define XXWIDGET(a) (eassert (XWIDGETP (a)), \
- (struct xwidget *) XUNTAG (a, Lisp_Vectorlike))
+ XUNTAG (a, Lisp_Vectorlike, struct xwidget))
#define CHECK_XWIDGET(x) \
CHECK_TYPE (XWIDGETP (x), Qxwidgetp, x)
@@ -99,7 +100,7 @@ struct xwidget_view
/* Test for xwidget_view pseudovector. */
#define XWIDGET_VIEW_P(x) PSEUDOVECTORP (x, PVEC_XWIDGET_VIEW)
#define XXWIDGET_VIEW(a) (eassert (XWIDGET_VIEW_P (a)), \
- (struct xwidget_view *) XUNTAG (a, Lisp_Vectorlike))
+ XUNTAG (a, Lisp_Vectorlike, struct xwidget_view))
#define CHECK_XWIDGET_VIEW(x) \
CHECK_TYPE (XWIDGET_VIEW_P (x), Qxwidget_view_p, x)