aboutsummaryrefslogtreecommitdiffstats
path: root/src/xwidget.c
diff options
context:
space:
mode:
authorJoakim Verona2011-07-17 23:53:27 +0200
committerJoakim Verona2011-07-17 23:53:27 +0200
commit32b1b66b26662eb2dd46657cbd292063691bfc79 (patch)
tree4b4302b917d5049cdb1cf4a4e0dcb3f129744761 /src/xwidget.c
parentb9cc0253ffe73b2c5c2cf4dddd65786a2d03d8c2 (diff)
downloademacs-32b1b66b26662eb2dd46657cbd292063691bfc79.tar.gz
emacs-32b1b66b26662eb2dd46657cbd292063691bfc79.zip
some attempts at real-world usefulness
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index 2ea88a22279..44e1d327729 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -783,6 +783,33 @@ DEFUN("xwidget-view-info", Fxwidget_view_info , Sxwidget_view_info, 2,2,0, doc:
783 return info; 783 return info;
784} 784}
785 785
786
787DEFUN("xwidget-delete-zombies", Fxwidget_delete_zombies , Sxwidget_delete_zombies, 0,0,0, doc: /* */)
788 (void)
789{
790 /*
791 - remove all views with window gone
792
793 TODO
794 - remove all xwidgets with buffer gone
795 - remove all views with xw gone
796
797 */
798 struct xwidget_view* xv = NULL;
799 Lisp_Object w;
800 for (int i = 0; i < MAX_XWIDGETS; i++){
801 xv = &xwidget_views[i];
802 XSETWINDOW(w, xv->w);
803 if(xv->initialized && (! (WINDOW_LIVE_P(w)))){
804
805 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow));
806 xv->initialized = 0;
807 }
808 }
809}
810
811
812
786void 813void
787syms_of_xwidget (void) 814syms_of_xwidget (void)
788{ 815{
@@ -799,7 +826,7 @@ syms_of_xwidget (void)
799 defsubr (&Sxwidget_webkit_execute_script); 826 defsubr (&Sxwidget_webkit_execute_script);
800 defsubr (&Sxwidget_webkit_get_title); 827 defsubr (&Sxwidget_webkit_get_title);
801 defsubr (&Sxwidget_size_request ); 828 defsubr (&Sxwidget_size_request );
802 829 defsubr (&Sxwidget_delete_zombies);
803 DEFSYM (Qxwidget ,"xwidget"); 830 DEFSYM (Qxwidget ,"xwidget");
804 831
805 DEFSYM (Qcxwidget ,":xwidget"); 832 DEFSYM (Qcxwidget ,":xwidget");
@@ -904,6 +931,7 @@ void xwidget_view_delete_all_in_window( struct window *w )
904} 931}
905 932
906 933
934
907struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w){ 935struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w){
908 struct xwidget_view* xv = NULL; 936 struct xwidget_view* xv = NULL;
909 for (int i = 0; i < MAX_XWIDGETS; i++) 937 for (int i = 0; i < MAX_XWIDGETS; i++)