From 57e492324769f892335ef6b20dd747f39fc00b71 Mon Sep 17 00:00:00 2001 From: Andreas Fink Date: Sat, 3 Jul 2010 07:37:17 +0000 Subject: [PATCH] *fix* ignore SIGCHLD in way that BSD and linux support *fix* default background id 0 for panel if not specified in the config file --- src/panel.c | 2 ++ src/tint.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/panel.c b/src/panel.c index 6e7051c..410a4bd 100644 --- a/src/panel.c +++ b/src/panel.c @@ -156,6 +156,8 @@ void init_panel() if (panel_config.monitor < 0) p->monitor = i; + if ( p->area.bg == 0 ) + p->area.bg = &g_array_index(backgrounds, Background, 0); p->area.parent = p; p->area.panel = p; p->area.on_screen = 1; diff --git a/src/tint.c b/src/tint.c index 8316bdd..4f5c673 100644 --- a/src/tint.c +++ b/src/tint.c @@ -91,11 +91,12 @@ void init (int argc, char *argv[]) // Set signal handler signal_pending = 0; struct sigaction sa = { .sa_handler = signal_handler }; + struct sigaction sa_chld = { .sa_handler = SIG_DFL, .sa_flags = SA_NOCLDWAIT }; sigaction(SIGUSR1, &sa, 0); sigaction(SIGINT, &sa, 0); sigaction(SIGTERM, &sa, 0); sigaction(SIGHUP, &sa, 0); -// signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork() + sigaction(SIGCHLD, &sa_chld, 0); // BSD does not support pselect(), therefore we have to use select and hope that we do not // end up in a race condition there (see 'man select()' on a linux machine for more information) -- 2.45.2