diff --git a/src/backend/wayland/wl_backend.c b/src/backend/wayland/wl_backend.c index 4d4dc3c..8c485ba 100644 --- a/src/backend/wayland/wl_backend.c +++ b/src/backend/wayland/wl_backend.c @@ -3480,6 +3480,12 @@ wl_signalfd_handler(int fd, uint32_t mask, void *data) if (n != (ssize_t)sizeof(info)) return 0; + if (info.ssi_signo == SIGUSR2) { + wwarning("wl_backend: signalfd received SIGUSR2 - rereading defaults"); + wDefaultsCheckDomains(NULL); + return 0; + } + wwarning("wl_backend: signalfd received signal %u - terminating event loop", (unsigned)info.ssi_signo); @@ -3571,6 +3577,7 @@ wl_event_loop_run(void) sigaddset(&ss, SIGTERM); sigaddset(&ss, SIGINT); sigaddset(&ss, SIGHUP); + sigaddset(&ss, SIGUSR2); wl_state.sigfd = signalfd(-1, &ss, SFD_NONBLOCK | SFD_CLOEXEC); if (wl_state.sigfd >= 0) {