aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGrégoire Jadi2013-07-16 19:39:18 +0200
committerGrégoire Jadi2013-07-16 19:39:18 +0200
commit54eb6c107157fe4b5fb75f01db3223b172477425 (patch)
tree5683545a95fea13a5a8bb7a80fdfb8120fc90d7a /src
parenta9ec66210d28b7121f8a7846f4653305269c2253 (diff)
downloademacs-54eb6c107157fe4b5fb75f01db3223b172477425.tar.gz
emacs-54eb6c107157fe4b5fb75f01db3223b172477425.zip
* src/xwidget.h src/xwidget.c (valid_xwidget_spec_p): Renamed
`valid_xwidget_p' to `valid_xwidget_p'. (XWIDGETP): Rename `XXWIDGETP' to `XWIDGETP' and `XXWIDGET_VIEW_P' to `XWIDGET_VIEW_P'. The old `XWIDGETP' is now implemented solely in `valid_xwidget_spec_p'. (CHECK_XWIDGET): New macro to check whether the argument is a xwidget. (CHECK_XWIDGET_VIEW): New macro to check whether the argument is a xwidget_view. * src/print.c src/xdisp.c: Take into account the new names.
Diffstat (limited to 'src')
-rw-r--r--src/print.c4
-rw-r--r--src/xdisp.c6
-rw-r--r--src/xwidget.c72
-rw-r--r--src/xwidget.h20
4 files changed, 57 insertions, 45 deletions
diff --git a/src/print.c b/src/print.c
index 798a132fc61..f4062f6f48f 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1766,12 +1766,12 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag)
1766 PRINTCHAR ('>'); 1766 PRINTCHAR ('>');
1767 } 1767 }
1768#ifdef HAVE_XWIDGETS 1768#ifdef HAVE_XWIDGETS
1769 else if (XXWIDGETP (obj)) 1769 else if (XWIDGETP (obj))
1770 { 1770 {
1771 strout ("#<xwidget ", -1, -1, printcharfun); 1771 strout ("#<xwidget ", -1, -1, printcharfun);
1772 PRINTCHAR ('>'); 1772 PRINTCHAR ('>');
1773 } 1773 }
1774 else if (XXWIDGET_VIEW_P (obj)) 1774 else if (XWIDGET_VIEW_P (obj))
1775 { 1775 {
1776 strout ("#<xwidget-view ", -1, -1, printcharfun); 1776 strout ("#<xwidget-view ", -1, -1, printcharfun);
1777 PRINTCHAR ('>'); 1777 PRINTCHAR ('>');
diff --git a/src/xdisp.c b/src/xdisp.c
index 9aae37d48c1..ab2e065d049 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5051,7 +5051,7 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
5051#endif /* not HAVE_WINDOW_SYSTEM */ 5051#endif /* not HAVE_WINDOW_SYSTEM */
5052 || (CONSP (value) && EQ (XCAR (value), Qspace)) 5052 || (CONSP (value) && EQ (XCAR (value), Qspace))
5053#ifdef HAVE_XWIDGETS 5053#ifdef HAVE_XWIDGETS
5054 || XWIDGETP(value) 5054 || valid_xwidget_spec_p(value)
5055#endif 5055#endif
5056 ); 5056 );
5057 5057
@@ -5129,7 +5129,7 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
5129 retval = 1 + (it->area == TEXT_AREA); 5129 retval = 1 + (it->area == TEXT_AREA);
5130 } 5130 }
5131#ifdef HAVE_XWIDGETS 5131#ifdef HAVE_XWIDGETS
5132 else if (XWIDGETP(value)) 5132 else if (valid_xwidget_spec_p(value))
5133 { 5133 {
5134 //printf("handle_single_display_spec: im an xwidget!!\n"); 5134 //printf("handle_single_display_spec: im an xwidget!!\n");
5135 it->what = IT_XWIDGET; 5135 it->what = IT_XWIDGET;
@@ -22879,7 +22879,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop,
22879 return OK_PIXELS (width_p ? img->width : img->height); 22879 return OK_PIXELS (width_p ? img->width : img->height);
22880 } 22880 }
22881#ifdef HAVE_XWIDGETS 22881#ifdef HAVE_XWIDGETS
22882 if (FRAME_WINDOW_P (it->f) && valid_xwidget_p (prop)) 22882 if (FRAME_WINDOW_P (it->f) && valid_xwidget_spec_p (prop))
22883 { 22883 {
22884 printf("calc_pixel_width_or_height: return dummy size FIXME\n"); 22884 printf("calc_pixel_width_or_height: return dummy size FIXME\n");
22885 return OK_PIXELS (width_p ? 100 : 100); 22885 return OK_PIXELS (width_p ? 100 : 100);
diff --git a/src/xwidget.c b/src/xwidget.c
index 21cf47b8a7a..22c8e69ca33 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -124,6 +124,7 @@ Lisp_Object Qxwidget_send_keyboard_event;
124Lisp_Object QCxwgir_class; 124Lisp_Object QCxwgir_class;
125Lisp_Object Qbutton, Qtoggle, Qslider, Qsocket, Qsocket_osr, Qcairo, Qxwgir, 125Lisp_Object Qbutton, Qtoggle, Qslider, Qsocket, Qsocket_osr, Qcairo, Qxwgir,
126 Qwebkit_osr, QCplist; 126 Qwebkit_osr, QCplist;
127Lisp_Object Qxwidgetp, Qxwidget_view_p;
127 128
128 129
129extern Lisp_Object QCtype; 130extern Lisp_Object QCtype;
@@ -313,7 +314,7 @@ BUFFER may be a buffer or the name of one.
313 for (tail = Vxwidget_list; CONSP (tail); tail = XCDR (tail)) 314 for (tail = Vxwidget_list; CONSP (tail); tail = XCDR (tail))
314 { 315 {
315 xw = XCAR (tail); 316 xw = XCAR (tail);
316 if (XXWIDGETP (xw) && EQ (Fxwidget_buffer (xw), buffer)) 317 if (XWIDGETP (xw) && EQ (Fxwidget_buffer (xw), buffer))
317 xw_list = Fcons (xw, xw_list); 318 xw_list = Fcons (xw, xw_list);
318 } 319 }
319 return xw_list; 320 return xw_list;
@@ -434,7 +435,7 @@ xwidget_slider_changed (GtkRange *range,
434 435
435 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 436 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
436 { 437 {
437 if (XXWIDGET_VIEW_P (XCAR (tail))) { 438 if (XWIDGET_VIEW_P (XCAR (tail))) {
438 xv = XXWIDGET_VIEW (XCAR (tail)); 439 xv = XXWIDGET_VIEW (XCAR (tail));
439 if (EQ (xvp->model, xv->model)) { 440 if (EQ (xvp->model, xv->model)) {
440 //block sibling views signal handlers 441 //block sibling views signal handlers
@@ -462,7 +463,7 @@ xwidget_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *event, gpo
462 463
463 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 464 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
464 { 465 {
465 if (XXWIDGET_VIEW_P (XCAR (tail))) { 466 if (XWIDGET_VIEW_P (XCAR (tail))) {
466 xv = XXWIDGET_VIEW (XCAR (tail)); 467 xv = XXWIDGET_VIEW (XCAR (tail));
467 if (XXWIDGET (xv->model) == xw) 468 if (XXWIDGET (xv->model) == xw)
468 gtk_widget_queue_draw (xv->widget); //redraw all views, the master has changed 469 gtk_widget_queue_draw (xv->widget); //redraw all views, the master has changed
@@ -819,13 +820,13 @@ DEFUN ("xwgir-xwidget-call-method", Fxwgir_xwidget_call_method, Sxwgir_xwidget_
819 doc: /* call xwidget object method.*/) 820 doc: /* call xwidget object method.*/)
820 (Lisp_Object xwidget, Lisp_Object method, Lisp_Object arguments) 821 (Lisp_Object xwidget, Lisp_Object method, Lisp_Object arguments)
821{ 822{
823 CHECK_XWIDGET (xwidget);
822 GError *error = NULL; 824 GError *error = NULL;
823 GIArgument return_value; 825 GIArgument return_value;
824 GIArgument in_args[20]; 826 GIArgument in_args[20];
825 827
826 828
827 struct xwidget* xw; 829 struct xwidget* xw;
828 if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;};
829 if (NILP (xwidget)) { printf("ERROR xwidget nil\n"); return Qnil; }; 830 if (NILP (xwidget)) { printf("ERROR xwidget nil\n"); return Qnil; };
830 xw = XXWIDGET(xwidget); 831 xw = XXWIDGET(xwidget);
831 if(NULL == xw) printf("ERROR xw is 0\n"); 832 if(NULL == xw) printf("ERROR xw is 0\n");
@@ -1190,7 +1191,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
1190//FUGLY macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first 1191//FUGLY macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first
1191#define WEBKIT_FN_INIT() \ 1192#define WEBKIT_FN_INIT() \
1192 struct xwidget* xw; \ 1193 struct xwidget* xw; \
1193if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;}; \ 1194 CHECK_XWIDGET (xwidget); \
1194 if(NILP (xwidget)) {printf("ERROR xwidget nil\n"); return Qnil;}; \ 1195 if(NILP (xwidget)) {printf("ERROR xwidget nil\n"); return Qnil;}; \
1195 xw = XXWIDGET(xwidget); \ 1196 xw = XXWIDGET(xwidget); \
1196 if(NULL == xw) printf("ERROR xw is 0\n"); \ 1197 if(NULL == xw) printf("ERROR xw is 0\n"); \
@@ -1327,6 +1328,7 @@ DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, doc:
1327 /* resize xwidgets*/) 1328 /* resize xwidgets*/)
1328 (Lisp_Object xwidget, Lisp_Object new_width, Lisp_Object new_height) 1329 (Lisp_Object xwidget, Lisp_Object new_width, Lisp_Object new_height)
1329{ 1330{
1331 CHECK_XWIDGET (xwidget);
1330 struct xwidget* xw = XXWIDGET(xwidget); 1332 struct xwidget* xw = XXWIDGET(xwidget);
1331 struct xwidget_view *xv; 1333 struct xwidget_view *xv;
1332 int w, h; 1334 int w, h;
@@ -1358,7 +1360,7 @@ DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, doc:
1358 1360
1359 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) //TODO MVC refactor lazy linear search 1361 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) //TODO MVC refactor lazy linear search
1360 { 1362 {
1361 if (XXWIDGET_VIEW_P (XCAR (tail))) { 1363 if (XWIDGET_VIEW_P (XCAR (tail))) {
1362 xv = XXWIDGET_VIEW (XCAR (tail)); 1364 xv = XXWIDGET_VIEW (XCAR (tail));
1363 if(XXWIDGET (xv->model) == xw) { 1365 if(XXWIDGET (xv->model) == xw) {
1364 gtk_layout_set_size (GTK_LAYOUT (xv->widgetwindow), xw->width, xw->height); 1366 gtk_layout_set_size (GTK_LAYOUT (xv->widgetwindow), xw->width, xw->height);
@@ -1374,6 +1376,7 @@ DEFUN ("xwidget-size-request", Fxwidget_size_request, Sxwidget_size_request, 1,
1374 /* desired size (TODO crashes if arg not osr widget)*/) 1376 /* desired size (TODO crashes if arg not osr widget)*/)
1375 (Lisp_Object xwidget) 1377 (Lisp_Object xwidget)
1376{ 1378{
1379 CHECK_XWIDGET (xwidget);
1377 GtkRequisition requisition; 1380 GtkRequisition requisition;
1378 Lisp_Object rv; 1381 Lisp_Object rv;
1379 gtk_widget_size_request(XXWIDGET(xwidget)->widget_osr, &requisition); 1382 gtk_widget_size_request(XXWIDGET(xwidget)->widget_osr, &requisition);
@@ -1391,9 +1394,17 @@ DEFUN ("xwidgetp", Fxwidgetp, Sxwidgetp, 1, 1, 0,
1391 return XWIDGETP (object) ? Qt : Qnil; 1394 return XWIDGETP (object) ? Qt : Qnil;
1392} 1395}
1393 1396
1397DEFUN ("xwidget-view-p", Fxwidget_view_p, Sxwidget_view_p, 1, 1, 0,
1398 doc: /* Return t if OBJECT is a xwidget-view. */)
1399 (Lisp_Object object)
1400{
1401 return XWIDGET_VIEW_P (object) ? Qt : Qnil;
1402}
1403
1394DEFUN("xwidget-info", Fxwidget_info , Sxwidget_info, 1,1,0, doc: /* get xwidget props */) 1404DEFUN("xwidget-info", Fxwidget_info , Sxwidget_info, 1,1,0, doc: /* get xwidget props */)
1395 (Lisp_Object xwidget) 1405 (Lisp_Object xwidget)
1396{ 1406{
1407 CHECK_XWIDGET (xwidget);
1397 Lisp_Object info, n; 1408 Lisp_Object info, n;
1398 struct xwidget* xw = XXWIDGET(xwidget); 1409 struct xwidget* xw = XXWIDGET(xwidget);
1399 1410
@@ -1408,22 +1419,20 @@ DEFUN("xwidget-info", Fxwidget_info , Sxwidget_info, 1,1,0, doc: /* get xwidget
1408 return info; 1419 return info;
1409} 1420}
1410 1421
1411 1422DEFUN("xwidget-view-info", Fxwidget_view_info , Sxwidget_view_info, 1, 1, 0, doc: /* get xwidget view props */)
1412DEFUN("xwidget-view-info", Fxwidget_view_info , Sxwidget_view_info, 2,2,0, doc: /* get xwidget view props */) 1423 (Lisp_Object xwidget_view)
1413 (Lisp_Object xwidget, Lisp_Object window)
1414{ 1424{
1415 struct xwidget* xw = XXWIDGET(xwidget); 1425 CHECK_XWIDGET_VIEW (xwidget_view);
1416 struct xwidget_view* xv = xwidget_view_lookup(xw, XWINDOW(window)); 1426 struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view);
1417
1418 Lisp_Object info; 1427 Lisp_Object info;
1419 1428
1420 info = Fmake_vector (make_number (6), Qnil); 1429 info = Fmake_vector (make_number (6), Qnil);
1421 XVECTOR (info)->contents[0] = make_number(xv->x); 1430 ASET (info, 0, make_number(xv->x));
1422 XVECTOR (info)->contents[1] = make_number(xv->y); 1431 ASET (info, 1, make_number(xv->y));
1423 XVECTOR (info)->contents[2] = make_number(xv->clip_right); 1432 ASET (info, 2, make_number(xv->clip_right));
1424 XVECTOR (info)->contents[3] = make_number(xv->clip_bottom); 1433 ASET (info, 3, make_number(xv->clip_bottom));
1425 XVECTOR (info)->contents[4] = make_number(xv->clip_top); 1434 ASET (info, 4, make_number(xv->clip_top));
1426 XVECTOR (info)->contents[5] = make_number(xv->clip_left); 1435 ASET (info, 5, make_number(xv->clip_left));
1427 1436
1428 return info; 1437 return info;
1429} 1438}
@@ -1508,7 +1517,7 @@ DEFUN("xwidget-delete-zombies", Fxwidget_delete_zombies , Sxwidget_delete_zombie
1508 struct xwidget_view* xv = NULL; 1517 struct xwidget_view* xv = NULL;
1509 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 1518 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
1510 { 1519 {
1511 if (XXWIDGET_VIEW_P (XCAR (tail))) { 1520 if (XWIDGET_VIEW_P (XCAR (tail))) {
1512 xv = XXWIDGET_VIEW (XCAR (tail)); 1521 xv = XXWIDGET_VIEW (XCAR (tail));
1513 if(!WINDOW_LIVE_P (xv->w)) { 1522 if(!WINDOW_LIVE_P (xv->w)) {
1514 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow)); 1523 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow));
@@ -1524,7 +1533,7 @@ DEFUN ("xwidget-plist", Fxwidget_plist, Sxwidget_plist,
1524 doc: /* Return the plist of XWIDGET. */) 1533 doc: /* Return the plist of XWIDGET. */)
1525 (register Lisp_Object xwidget) 1534 (register Lisp_Object xwidget)
1526{ 1535{
1527 //CHECK_XWIDGET (xwidget); //todo 1536 CHECK_XWIDGET (xwidget);
1528 return XXWIDGET (xwidget)->plist; 1537 return XXWIDGET (xwidget)->plist;
1529} 1538}
1530 1539
@@ -1533,7 +1542,7 @@ DEFUN ("xwidget-buffer", Fxwidget_buffer, Sxwidget_buffer,
1533 doc: /* Return the buffer of XWIDGET. */) 1542 doc: /* Return the buffer of XWIDGET. */)
1534 (register Lisp_Object xwidget) 1543 (register Lisp_Object xwidget)
1535{ 1544{
1536 //CHECK_XWIDGET (xwidget); //todo 1545 CHECK_XWIDGET (xwidget);
1537 return XXWIDGET (xwidget)->buffer; 1546 return XXWIDGET (xwidget)->buffer;
1538} 1547}
1539 1548
@@ -1542,15 +1551,13 @@ DEFUN ("set-xwidget-plist", Fset_xwidget_plist, Sset_xwidget_plist,
1542 doc: /* Replace the plist of XWIDGET with PLIST. Returns PLIST. */) 1551 doc: /* Replace the plist of XWIDGET with PLIST. Returns PLIST. */)
1543 (register Lisp_Object xwidget, Lisp_Object plist) 1552 (register Lisp_Object xwidget, Lisp_Object plist)
1544{ 1553{
1545 //CHECK_XWIDGET (xwidget); //todo 1554 CHECK_XWIDGET (xwidget);
1546 CHECK_LIST (plist); 1555 CHECK_LIST (plist);
1547 1556
1548 XXWIDGET (xwidget)->plist = plist; 1557 XXWIDGET (xwidget)->plist = plist;
1549 return plist; 1558 return plist;
1550} 1559}
1551 1560
1552
1553
1554void 1561void
1555syms_of_xwidget (void) 1562syms_of_xwidget (void)
1556{ 1563{
@@ -1558,6 +1565,9 @@ syms_of_xwidget (void)
1558 1565
1559 defsubr (&Smake_xwidget); 1566 defsubr (&Smake_xwidget);
1560 defsubr (&Sxwidgetp); 1567 defsubr (&Sxwidgetp);
1568 DEFSYM (Qxwidgetp, "xwidgetp");
1569 defsubr (&Sxwidget_view_p);
1570 DEFSYM (Qxwidget_view_p, "xwidget-view-p");
1561 defsubr (&Sxwidget_info); 1571 defsubr (&Sxwidget_info);
1562 defsubr (&Sxwidget_view_info); 1572 defsubr (&Sxwidget_view_info);
1563 defsubr (&Sxwidget_resize); 1573 defsubr (&Sxwidget_resize);
@@ -1618,11 +1628,11 @@ syms_of_xwidget (void)
1618 xwidget type. */ 1628 xwidget type. */
1619 1629
1620int 1630int
1621valid_xwidget_p (Lisp_Object object) 1631valid_xwidget_spec_p (Lisp_Object object)
1622{ 1632{
1623 int valid_p = 0; 1633 int valid_p = 0;
1624 1634
1625 if (XWIDGETP (object)) 1635 if (CONSP (object) && EQ (XCAR (object), Qxwidget))
1626 { 1636 {
1627 /* Lisp_Object tem; */ 1637 /* Lisp_Object tem; */
1628 1638
@@ -1656,7 +1666,7 @@ xwidget_spec_value ( Lisp_Object spec, Lisp_Object key,
1656{ 1666{
1657 Lisp_Object tail; 1667 Lisp_Object tail;
1658 1668
1659 eassert (valid_xwidget_p (spec)); 1669 eassert (valid_xwidget_spec_p (spec));
1660 1670
1661 for (tail = XCDR (spec); 1671 for (tail = XCDR (spec);
1662 CONSP (tail) && CONSP (XCDR (tail)); tail = XCDR (XCDR (tail))) 1672 CONSP (tail) && CONSP (XCDR (tail)); tail = XCDR (XCDR (tail)))
@@ -1681,7 +1691,7 @@ xwidget_view_delete_all_in_window (struct window *w)
1681 struct xwidget_view* xv = NULL; 1691 struct xwidget_view* xv = NULL;
1682 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 1692 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
1683 { 1693 {
1684 if (XXWIDGET_VIEW_P (XCAR (tail))) { 1694 if (XWIDGET_VIEW_P (XCAR (tail))) {
1685 xv = XXWIDGET_VIEW (XCAR (tail)); 1695 xv = XXWIDGET_VIEW (XCAR (tail));
1686 if(XWINDOW (xv->w) == w) { 1696 if(XWINDOW (xv->w) == w) {
1687 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow)); 1697 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow));
@@ -1699,7 +1709,7 @@ xwidget_view_lookup (struct xwidget* xw, struct window *w)
1699 struct xwidget_view* xv = NULL; 1709 struct xwidget_view* xv = NULL;
1700 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 1710 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
1701 { 1711 {
1702 if (XXWIDGET_VIEW_P (XCAR (tail))) { 1712 if (XWIDGET_VIEW_P (XCAR (tail))) {
1703 xv = XXWIDGET_VIEW (XCAR (tail)); 1713 xv = XXWIDGET_VIEW (XCAR (tail));
1704 if (XXWIDGET (xv->model) == xw && XWINDOW (xv->w) == w) 1714 if (XXWIDGET (xv->model) == xw && XWINDOW (xv->w) == w)
1705 return xv; 1715 return xv;
@@ -1751,7 +1761,7 @@ xwidget_start_redisplay (void)
1751{ 1761{
1752 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 1762 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
1753 { 1763 {
1754 if (XXWIDGET_VIEW_P (XCAR (tail))) 1764 if (XWIDGET_VIEW_P (XCAR (tail)))
1755 XXWIDGET_VIEW (XCAR (tail))->redisplayed = 0; 1765 XXWIDGET_VIEW (XCAR (tail))->redisplayed = 0;
1756 } 1766 }
1757} 1767}
@@ -1817,7 +1827,7 @@ xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix)
1817 1827
1818 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) 1828 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
1819 { 1829 {
1820 if (XXWIDGET_VIEW_P (XCAR (tail))) { 1830 if (XWIDGET_VIEW_P (XCAR (tail))) {
1821 struct xwidget_view* xv = XXWIDGET_VIEW (XCAR (tail)); 1831 struct xwidget_view* xv = XXWIDGET_VIEW (XCAR (tail));
1822 1832
1823 //"touched" is only meaningful for the current window, so disregard other views 1833 //"touched" is only meaningful for the current window, so disregard other views
diff --git a/src/xwidget.h b/src/xwidget.h
index f8c804aac46..01be2b29281 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -7,7 +7,7 @@ void syms_of_xwidget ();
7extern Lisp_Object Qxwidget; 7extern Lisp_Object Qxwidget;
8 8
9 9
10int valid_xwidget_p (Lisp_Object object) ; 10int valid_xwidget_spec_p (Lisp_Object object) ;
11 11
12#include <gtk/gtk.h> 12#include <gtk/gtk.h>
13 13
@@ -64,20 +64,22 @@ struct xwidget_view {
64 long handler_id; 64 long handler_id;
65}; 65};
66 66
67
68/* Test for xwidget (xwidget . spec) (car must be the symbol xwidget)*/
69#define XWIDGETP(x) (CONSP (x) && EQ (XCAR (x), Qxwidget))
70
71/* Test for xwidget pseudovector*/ 67/* Test for xwidget pseudovector*/
72#define XXWIDGETP(x) PSEUDOVECTORP (x, PVEC_XWIDGET) 68#define XWIDGETP(x) PSEUDOVECTORP (x, PVEC_XWIDGET)
73#define XXWIDGET(a) (eassert (XXWIDGETP(a)), \ 69#define XXWIDGET(a) (eassert (XWIDGETP(a)), \
74 (struct xwidget *) XUNTAG(a, Lisp_Vectorlike)) 70 (struct xwidget *) XUNTAG(a, Lisp_Vectorlike))
75 71
72#define CHECK_XWIDGET(x) \
73 CHECK_TYPE (XWIDGETP (x), Qxwidgetp, x)
74
76/* Test for xwidget_view pseudovector */ 75/* Test for xwidget_view pseudovector */
77#define XXWIDGET_VIEW_P(x) PSEUDOVECTORP (x, PVEC_XWIDGET_VIEW) 76#define XWIDGET_VIEW_P(x) PSEUDOVECTORP (x, PVEC_XWIDGET_VIEW)
78#define XXWIDGET_VIEW(a) (eassert (XXWIDGET_VIEW_P(a)), \ 77#define XXWIDGET_VIEW(a) (eassert (XWIDGET_VIEW_P(a)), \
79 (struct xwidget_view *) XUNTAG(a, Lisp_Vectorlike)) 78 (struct xwidget_view *) XUNTAG(a, Lisp_Vectorlike))
80 79
80#define CHECK_XWIDGET_VIEW(x) \
81 CHECK_TYPE (XWIDGET_VIEW_P (x), Qxwidget_view_p, x)
82
81struct xwidget_type 83struct xwidget_type
82{ 84{
83 /* A symbol uniquely identifying the xwidget type, */ 85 /* A symbol uniquely identifying the xwidget type, */