diff options
| author | Devin J. Pohly <djpohly@gmail.com> | 2021-05-26 23:30:49 -0500 | 
|---|---|---|
| committer | Devin J. Pohly <djpohly@gmail.com> | 2021-05-26 23:30:49 -0500 | 
| commit | bd2f7fbb4082d947ec2738cd31d403e9f0c10f50 (patch) | |
| tree | 81202e7848b51b38f1b64702a0bb002ad44503a5 /dwl.c | |
| parent | 823cefd2920085a0f74899fb679020005a1b6e0b (diff) | |
exit cleanly on INT/TERM
Diffstat (limited to 'dwl.c')
| -rw-r--r-- | dwl.c | 11 | 
1 files changed, 10 insertions, 1 deletions
| @@ -259,6 +259,7 @@ static void pointerfocus(Client *c, struct wlr_surface *surface,  		double sx, double sy, uint32_t time);  static void printstatus(void);  static void quit(const Arg *arg); +static void quitsignal(int signo);  static void render(struct wlr_surface *surface, int sx, int sy, void *data);  static void renderclients(Monitor *m, struct timespec *now);  static void renderlayer(struct wl_list *layer_surfaces, struct timespec *now); @@ -1579,6 +1580,12 @@ quit(const Arg *arg)  }  void +quitsignal(int signo) +{ +	quit(NULL); +} + +void  render(struct wlr_surface *surface, int sx, int sy, void *data)  {  	/* This function is called for every surface that needs to be rendered. */ @@ -1965,8 +1972,10 @@ setup(void)  	 * clients from the Unix socket, manging Wayland globals, and so on. */  	dpy = wl_display_create(); -	/* clean up child processes immediately */ +	/* Set up signal handlers */  	sigchld(0); +	signal(SIGINT, quitsignal); +	signal(SIGTERM, quitsignal);  	/* The backend is a wlroots feature which abstracts the underlying input and  	 * output hardware. The autocreate option will choose the most suitable | 
