X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclock%2Fclock.c;h=876536cbca6407c147908210f1f075ed5ea67f15;hb=8622308774bcb0569c8ffa1ea3f928b9d20f35b8;hp=b5c3e41920bc271a36e7a857718c84dd289c0c31;hpb=0a43eba2b74224ce55ff7ea3cfaaf25758f2e582;p=chaz%2Ftint2 diff --git a/src/clock/clock.c b/src/clock/clock.c index b5c3e41..876536c 100644 --- a/src/clock/clock.c +++ b/src/clock/clock.c @@ -46,6 +46,7 @@ static char buf_time[40]; static char buf_date[40]; static char buf_tooltip[40]; int clock_enabled; +static const struct timeout* clock_timeout=0; void update_clocks() @@ -69,10 +70,11 @@ const char* clock_get_tooltip(void* obj) void init_clock() { - if(time1_format) { + if(time1_format && clock_timeout==0) { if (strchr(time1_format, 'S') || strchr(time1_format, 'T') || strchr(time1_format, 'r')) - install_timer(0, 1000000, 1, 0, update_clocks); - else install_timer(0, 1000000, 60, 0, update_clocks); + clock_timeout = add_timeout(10, 1000, update_clocks); + else + clock_timeout = add_timeout(10, 60000, update_clocks); } } @@ -263,12 +265,12 @@ void clock_action(int button) } if (command) { pid_t pid; - sigset_t sigset; - sigprocmask(SIG_SETMASK, &sigset, 0); - sigprocmask(SIG_UNBLOCK, &sigset, 0); pid = fork(); - sigprocmask(SIG_BLOCK, &sigset, 0); if (pid == 0) { + // change for the fork the signal mask + sigset_t sigset; + sigprocmask(SIG_SETMASK, &sigset, 0); + sigprocmask(SIG_UNBLOCK, &sigset, 0); execl("/bin/sh", "/bin/sh", "-c", command, NULL); _exit(0); }