diff options
| author | Joakim Verona | 2011-07-17 23:53:27 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-07-17 23:53:27 +0200 |
| commit | 32b1b66b26662eb2dd46657cbd292063691bfc79 (patch) | |
| tree | 4b4302b917d5049cdb1cf4a4e0dcb3f129744761 /src/xwidget.c | |
| parent | b9cc0253ffe73b2c5c2cf4dddd65786a2d03d8c2 (diff) | |
| download | emacs-32b1b66b26662eb2dd46657cbd292063691bfc79.tar.gz emacs-32b1b66b26662eb2dd46657cbd292063691bfc79.zip | |
some attempts at real-world usefulness
Diffstat (limited to 'src/xwidget.c')
| -rw-r--r-- | src/xwidget.c | 30 |
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 | |||
| 787 | DEFUN("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 | |||
| 786 | void | 813 | void |
| 787 | syms_of_xwidget (void) | 814 | syms_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 | |||
| 907 | struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w){ | 935 | struct 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++) |