aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGrégoire Jadi2013-07-18 11:48:13 +0200
committerGrégoire Jadi2013-07-18 11:48:13 +0200
commita425ea65234441d4774d32dc7511a9401467b54d (patch)
treeb3dd127a0a8fcc297727c6d382eba72e0e207834 /src
parent5a422d95aa63713b29d93ffbfd3595d235a026ba (diff)
downloademacs-a425ea65234441d4774d32dc7511a9401467b54d.tar.gz
emacs-a425ea65234441d4774d32dc7511a9401467b54d.zip
* src/xwidget.c (Fxwidget_delete_zombies): Re-implemented in Lisp.
Note: It is not longer necessary to delete xwidget with killed buffer here because it is done automatically when a buffer is killed. (Fdelete_xwidget_view): New function to delete the given xwidget-view. * lisp/xwidget.el (xwidget-delete-zombies): Re-implementation. * src/xwidget.c (Fxwidget_delete_zombies): Re-implemented in Lisp. Note: It is not longer necessary to delete xwidget with killed buffer here because it is done automatically when a buffer is killed. (Fdelete_xwidget_view): New function to delete the given xwidget-view. * lisp/xwidget.el (xwidget-delete-zombies): New implementation.
Diffstat (limited to 'src')
-rw-r--r--src/xwidget.c33
1 files changed, 9 insertions, 24 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index ad4e07c6dd2..837b607643b 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -1520,30 +1520,15 @@ DEFUN ("xwidget-send-keyboard-event", Fxwidget_send_keyboard_event, Sxwidget_sen
1520 return Qnil; 1520 return Qnil;
1521} 1521}
1522 1522
1523 1523DEFUN ("delete-xwidget-view", Fdelete_xwidget_view, Sdelete_xwidget_view,
1524 1524 1, 1, 0,
1525DEFUN("xwidget-delete-zombies", Fxwidget_delete_zombies , Sxwidget_delete_zombies, 0,0,0, doc: /* */) 1525 doc: /* Delete the XWIDGET-VIEW. */)
1526 (void) 1526 (Lisp_Object xwidget_view)
1527{ 1527{
1528 /* 1528 CHECK_XWIDGET_VIEW (xwidget_view);
1529 - remove all views with window gone 1529 struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view);
1530 1530 gtk_widget_destroy(GTK_WIDGET (xv->widgetwindow));
1531 TODO 1531 Vxwidget_view_list = Fdelq (xwidget_view, Vxwidget_view_list);
1532 - remove all xwidgets with buffer gone
1533 - remove all views with xw gone
1534
1535 */
1536 struct xwidget_view* xv = NULL;
1537 for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail))
1538 {
1539 if (XWIDGET_VIEW_P (XCAR (tail))) {
1540 xv = XXWIDGET_VIEW (XCAR (tail));
1541 if(!WINDOW_LIVE_P (xv->w)) {
1542 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow));
1543 Vxwidget_view_list = Fdelq (XCAR (tail), Vxwidget_view_list);
1544 }
1545 }
1546 }
1547} 1532}
1548 1533
1549DEFUN ("xwidget-view-lookup", Fxwidget_view_lookup, Sxwidget_view_lookup, 1534DEFUN ("xwidget-view-lookup", Fxwidget_view_lookup, Sxwidget_view_lookup,
@@ -1653,7 +1638,7 @@ syms_of_xwidget (void)
1653 defsubr (&Sxwgir_xwidget_call_method ); 1638 defsubr (&Sxwgir_xwidget_call_method );
1654 defsubr (&Sxwgir_require_namespace); 1639 defsubr (&Sxwgir_require_namespace);
1655 defsubr (&Sxwidget_size_request ); 1640 defsubr (&Sxwidget_size_request );
1656 defsubr (&Sxwidget_delete_zombies); 1641 defsubr (&Sdelete_xwidget_view);
1657 defsubr (&Sxwidget_disable_plugin_for_mime); 1642 defsubr (&Sxwidget_disable_plugin_for_mime);
1658 1643
1659 defsubr (&Sxwidget_send_keyboard_event); 1644 defsubr (&Sxwidget_send_keyboard_event);