From f9064bf49a3c0cdefc0bef31533cf846df9aebcf Mon Sep 17 00:00:00 2001 From: Reginald Kennedy Date: Mon, 22 Oct 2012 11:34:29 +0800 Subject: [PATCH] Kill bar script on an unclean exit. --- spectrwm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spectrwm.c b/spectrwm.c index decf39c..ee48397 100644 --- a/spectrwm.c +++ b/spectrwm.c @@ -917,6 +917,7 @@ struct key *key_lookup(unsigned int, KeySym); void key_remove(struct key *); void key_replace(struct key *, unsigned int, KeySym, enum keyfuncid, const char *); +void kill_bar_extra_atexit(void); void kill_refs(struct ws_win *); #ifdef SWM_DEBUG void leavenotify(xcb_leave_notify_event_t *); @@ -2337,6 +2338,8 @@ bar_extra_setup(void) close(bar_pipe[1]); break; } + + atexit(kill_bar_extra_atexit); } num_screens = xcb_setup_roots_length(xcb_get_setup(conn)); @@ -2354,6 +2357,13 @@ bar_extra_setup(void) xcb_flush(conn); } +void +kill_bar_extra_atexit(void) +{ + if (bar_pid) + kill(bar_pid, SIGTERM); +} + int isxlfd(char *s) { -- 1.7.10.4