diff options
| author | Grégoire Jadi | 2013-07-18 11:48:13 +0200 |
|---|---|---|
| committer | Grégoire Jadi | 2013-07-18 11:48:13 +0200 |
| commit | a425ea65234441d4774d32dc7511a9401467b54d (patch) | |
| tree | b3dd127a0a8fcc297727c6d382eba72e0e207834 /src | |
| parent | 5a422d95aa63713b29d93ffbfd3595d235a026ba (diff) | |
| download | emacs-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.c | 33 |
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 | 1523 | DEFUN ("delete-xwidget-view", Fdelete_xwidget_view, Sdelete_xwidget_view, | |
| 1524 | 1524 | 1, 1, 0, | |
| 1525 | DEFUN("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 | ||
| 1549 | DEFUN ("xwidget-view-lookup", Fxwidget_view_lookup, Sxwidget_view_lookup, | 1534 | DEFUN ("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); |