diff options
| author | Grégoire Jadi | 2013-06-24 10:22:45 +0200 |
|---|---|---|
| committer | Grégoire Jadi | 2013-06-24 10:22:45 +0200 |
| commit | d65ea7dd1d4aa93a44c39a44d0e79fca6e912690 (patch) | |
| tree | 715e0de814d4c2523c9f30ec4a72c8ca4a3061ef | |
| parent | 4d3eadf4d596788c6b70c2fac347d486c5b4658a (diff) | |
| download | emacs-d65ea7dd1d4aa93a44c39a44d0e79fca6e912690.tar.gz emacs-d65ea7dd1d4aa93a44c39a44d0e79fca6e912690.zip | |
* src/xwidget.c (Fmake_xwidget): Store xwidget in Vxwidget_list.
(syms_of_xwidget): Rename Vxwidget_alist to Vxwidget_list and register
`get-buffer-xwidgets' as a new subr.
(Fget_buffer_xwidgets): New function to return a list of xwidgets attached
to the specified buffer.
| -rw-r--r-- | src/xwidget.c | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/src/xwidget.c b/src/xwidget.c index a73710479d7..ed7ea98fb42 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -216,7 +216,7 @@ TYPE is a symbol which can take one of the following values: | |||
| 216 | xw->height = XFASTINT(height); | 216 | xw->height = XFASTINT(height); |
| 217 | xw->width = XFASTINT(width); | 217 | xw->width = XFASTINT(width); |
| 218 | XSETPSEUDOVECTOR (val, xw, PVEC_XWIDGET); // set the vectorlike_header of VAL with the correct value | 218 | XSETPSEUDOVECTOR (val, xw, PVEC_XWIDGET); // set the vectorlike_header of VAL with the correct value |
| 219 | Vxwidget_alist = Fcons (val, Vxwidget_alist); | 219 | Vxwidget_list = Fcons (val, Vxwidget_list); |
| 220 | xw->widgetwindow_osr = NULL; | 220 | xw->widgetwindow_osr = NULL; |
| 221 | xw->widget_osr = NULL; | 221 | xw->widget_osr = NULL; |
| 222 | xw->plist = Qnil; | 222 | xw->plist = Qnil; |
| @@ -302,6 +302,30 @@ TYPE is a symbol which can take one of the following values: | |||
| 302 | return val; | 302 | return val; |
| 303 | } | 303 | } |
| 304 | 304 | ||
| 305 | DEFUN ("get-buffer-xwidgets", Fget_buffer_xwidgets, Sget_buffer_xwidgets, 1, 1, 0, | ||
| 306 | doc: /* Return the xwidgets associated with BUFFER. | ||
| 307 | BUFFER may be a buffer or the name of one. | ||
| 308 | */ | ||
| 309 | ) | ||
| 310 | (Lisp_Object buffer) | ||
| 311 | { | ||
| 312 | Lisp_Object xw, tail, xw_list; | ||
| 313 | |||
| 314 | if (NILP (buffer)) return Qnil; | ||
| 315 | buffer = Fget_buffer (buffer); | ||
| 316 | if (NILP (buffer)) return Qnil; | ||
| 317 | |||
| 318 | xw_list = Qnil; | ||
| 319 | |||
| 320 | for (tail = Vxwidget_list; CONSP (tail); tail = XCDR (tail)) | ||
| 321 | { | ||
| 322 | xw = XCAR (tail); | ||
| 323 | if (XXWIDGETP (xw) && EQ (Fxwidget_buffer (xw), buffer)) | ||
| 324 | xw_list = Fcons (xw, xw_list); | ||
| 325 | } | ||
| 326 | return xw_list; | ||
| 327 | } | ||
| 328 | |||
| 305 | int | 329 | int |
| 306 | xwidget_hidden(struct xwidget_view *xv) | 330 | xwidget_hidden(struct xwidget_view *xv) |
| 307 | { | 331 | { |
| @@ -1557,6 +1581,7 @@ syms_of_xwidget (void) | |||
| 1557 | defsubr (&Sxwidget_info); | 1581 | defsubr (&Sxwidget_info); |
| 1558 | defsubr (&Sxwidget_view_info); | 1582 | defsubr (&Sxwidget_view_info); |
| 1559 | defsubr (&Sxwidget_resize); | 1583 | defsubr (&Sxwidget_resize); |
| 1584 | defsubr (&Sget_buffer_xwidgets); | ||
| 1560 | 1585 | ||
| 1561 | #ifdef HAVE_WEBKIT_OSR | 1586 | #ifdef HAVE_WEBKIT_OSR |
| 1562 | defsubr (&Sxwidget_webkit_goto_uri); | 1587 | defsubr (&Sxwidget_webkit_goto_uri); |
| @@ -1594,8 +1619,8 @@ syms_of_xwidget (void) | |||
| 1594 | 1619 | ||
| 1595 | DEFSYM (QCplist, ":plist"); | 1620 | DEFSYM (QCplist, ":plist"); |
| 1596 | 1621 | ||
| 1597 | DEFVAR_LISP ("xwidget-alist", Vxwidget_alist, doc: /*xwidgets list*/); | 1622 | DEFVAR_LISP ("xwidget-alist", Vxwidget_list, doc: /*xwidgets list*/); |
| 1598 | Vxwidget_alist = Qnil; | 1623 | Vxwidget_list = Qnil; |
| 1599 | 1624 | ||
| 1600 | DEFVAR_LISP ("xwidget-view-alist", Vxwidget_view_alist, doc: /*xwidget views list*/); | 1625 | DEFVAR_LISP ("xwidget-view-alist", Vxwidget_view_alist, doc: /*xwidget views list*/); |
| 1601 | Vxwidget_view_alist = Qnil; | 1626 | Vxwidget_view_alist = Qnil; |
| @@ -1820,5 +1845,4 @@ xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) | |||
| 1820 | } | 1845 | } |
| 1821 | } | 1846 | } |
| 1822 | 1847 | ||
| 1823 | |||
| 1824 | #endif /* HAVE_XWIDGETS */ | 1848 | #endif /* HAVE_XWIDGETS */ |