diff options
Diffstat (limited to 'src/xwidget.h')
-rw-r--r-- | src/xwidget.h | 15 |
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) |