]> Dogcows Code - chaz/tint2/commitdiff
*fix* ignore SIGCHLD in way that BSD and linux support
authorAndreas Fink <andreas.fink85@googlemail.com>
Sat, 3 Jul 2010 07:37:17 +0000 (07:37 +0000)
committerAndreas Fink <andreas.fink85@googlemail.com>
Sat, 3 Jul 2010 07:37:17 +0000 (07:37 +0000)
*fix* default background id 0 for panel if not specified in the config file

src/panel.c
src/tint.c

index 6e7051cf5cd17981e49767415171684191fbfb19..410a4bd139136c257b59ebca3ab0708e870ba8aa 100644 (file)
@@ -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;
index 8316bdde59a56f8a0fb841731f72391b2fce2d00..4f5c67372f18132a3f27b4f7c51e33001176888b 100644 (file)
@@ -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)
This page took 0.021173 seconds and 4 git commands to generate.