aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorGrégoire Jadi2013-06-24 10:22:45 +0200
committerGrégoire Jadi2013-06-24 10:22:45 +0200
commitda95bc007d161d6d901b7600120a97fd2f54ce4b (patch)
tree1a1ac334d23acedd4dd97cea4066537c67a36cdc /src/buffer.c
parentd65ea7dd1d4aa93a44c39a44d0e79fca6e912690 (diff)
downloademacs-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.c9
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
47struct buffer *current_buffer; /* The current buffer. */ 51struct 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))