restartsig and cool autostart: moving functionality to the cleanup function ref. #276

This commit is contained in:
bakkeby 2022-07-11 11:04:01 +02:00
parent 5f7df0b0dc
commit d4ab4400ac

49
dwm.c
View File

@ -1233,15 +1233,27 @@ checkotherwm(void)
void void
cleanup(void) cleanup(void)
{ {
#if !SEAMLESS_RESTART_PATCH Monitor *m;
Layout foo = { "", NULL };
size_t i;
#if SEAMLESS_RESTART_PATCH
for (m = mons; m; m = m->next)
persistmonitorstate(m);
#else
Arg a = {.ui = ~0}; Arg a = {.ui = ~0};
#endif // SEAMLESS_RESTART_PATCH #endif // SEAMLESS_RESTART_PATCH
Layout foo = { "", NULL };
Monitor *m; #if COOL_AUTOSTART_PATCH
size_t i; /* kill child processes */
#if !SEAMLESS_RESTART_PATCH for (i = 0; i < autostart_len; i++) {
view(&a); if (0 < autostart_pids[i]) {
#endif // SEAMLESS_RESTART_PATCH kill(autostart_pids[i], SIGTERM);
waitpid(autostart_pids[i], NULL, 0);
}
}
#endif // COOL_AUTOSTART_PATCH
selmon->lt[selmon->sellt] = &foo; selmon->lt[selmon->sellt] = &foo;
for (m = mons; m; m = m->next) for (m = mons; m; m = m->next)
while (m->stack) while (m->stack)
@ -2856,19 +2868,11 @@ propertynotify(XEvent *e)
void void
quit(const Arg *arg) quit(const Arg *arg)
{ {
#if COOL_AUTOSTART_PATCH
size_t i;
#endif // COOL_AUTOSTART_PATCH
#if RESTARTSIG_PATCH #if RESTARTSIG_PATCH
restart = arg->i; restart = arg->i;
#endif // RESTARTSIG_PATCH #endif // RESTARTSIG_PATCH
#if SEAMLESS_RESTART_PATCH
Monitor *m;
#endif // SEAMLESS_RESTART_PATCH
#if ONLYQUITONEMPTY_PATCH #if ONLYQUITONEMPTY_PATCH
#if !SEAMLESS_RESTART_PATCH
Monitor *m; Monitor *m;
#endif // SEAMLESS_RESTART_PATCH
Client *c; Client *c;
unsigned int n = 0; unsigned int n = 0;
@ -2887,21 +2891,6 @@ quit(const Arg *arg)
#else // !ONLYQUITONEMPTY_PATCH #else // !ONLYQUITONEMPTY_PATCH
running = 0; running = 0;
#endif // ONLYQUITONEMPTY_PATCH #endif // ONLYQUITONEMPTY_PATCH
#if SEAMLESS_RESTART_PATCH
for (m = mons; m && !running; m = m->next)
persistmonitorstate(m);
#endif // SEAMLESS_RESTART_PATCH
#if COOL_AUTOSTART_PATCH
/* kill child processes */
for (i = 0; i < autostart_len && !running; i++) {
if (0 < autostart_pids[i]) {
kill(autostart_pids[i], SIGTERM);
waitpid(autostart_pids[i], NULL, 0);
}
}
#endif // COOL_AUTOSTART_PATCH
} }
Monitor * Monitor *