diff options
| author | Grégoire Jadi | 2013-06-24 10:22:45 +0200 |
|---|---|---|
| committer | Grégoire Jadi | 2013-06-24 10:22:45 +0200 |
| commit | da95bc007d161d6d901b7600120a97fd2f54ce4b (patch) | |
| tree | 1a1ac334d23acedd4dd97cea4066537c67a36cdc /src/buffer.c | |
| parent | d65ea7dd1d4aa93a44c39a44d0e79fca6e912690 (diff) | |
| download | emacs-da95bc007d161d6d901b7600120a97fd2f54ce4b.tar.gz emacs-da95bc007d161d6d901b7600120a97fd2f54ce4b.zip | |
Handle xwidgets like processes and delete them when their buffer is killed.
* lisp/xwidget.el (xwidget-kill-buffer-query-function): New function to
query a user before killing a buffer with xwidgets in it.
This function is stored in `kill-buffer-query-functions' and called from
`kill-buffer'.
* src/buffer.c (Fkill_buffer): Call `kill_buffer_xwidgets'.
* src/xwidget.c (kill_buffer_xwidgets): Delete xwidgets attached to the
specified buffer.
* src/xwidget.h (kill_buffer_xwidgets): Add definition.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c index abebdf21135..4e0dbe778ef 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -44,6 +44,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 44 | #include "keymap.h" | 44 | #include "keymap.h" |
| 45 | #include "frame.h" | 45 | #include "frame.h" |
| 46 | 46 | ||
| 47 | #ifdef HAVE_XWIDGETS | ||
| 48 | #include "xwidget.h" | ||
| 49 | #endif /* HAVE_XWIDGETS */ | ||
| 50 | |||
| 47 | struct buffer *current_buffer; /* The current buffer. */ | 51 | struct buffer *current_buffer; /* The current buffer. */ |
| 48 | 52 | ||
| 49 | /* First buffer in chain of all buffers (in reverse order of creation). | 53 | /* First buffer in chain of all buffers (in reverse order of creation). |
| @@ -1835,6 +1839,11 @@ cleaning up all windows currently displaying the buffer to be killed. */) | |||
| 1835 | kill_buffer_processes (buffer); | 1839 | kill_buffer_processes (buffer); |
| 1836 | UNGCPRO; | 1840 | UNGCPRO; |
| 1837 | 1841 | ||
| 1842 | #ifdef HAVE_XWIDGETS | ||
| 1843 | GCPRO1 (buffer); | ||
| 1844 | kill_buffer_xwidgets (buffer); | ||
| 1845 | UNGCPRO; | ||
| 1846 | #endif /* HAVE_XWIDGETS */ | ||
| 1838 | /* Killing buffer processes may run sentinels which may have killed | 1847 | /* Killing buffer processes may run sentinels which may have killed |
| 1839 | our buffer. */ | 1848 | our buffer. */ |
| 1840 | if (!BUFFER_LIVE_P (b)) | 1849 | if (!BUFFER_LIVE_P (b)) |