diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-08-13 11:00:00 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-08-13 11:00:00 -0400 |
commit | 94e81fd64c4f63815047fa1ad895cade9afa8bd4 (patch) | |
tree | 9770eded52cae4f9d3d033123e1470d7873624c5 /sway/main.c | |
parent | 9475548f2426b3892a6d14961af36edc49b72182 (diff) | |
parent | 0a205776d7023cb8dea0d62994dff7b01d19dbcf (diff) |
Merge pull request #23 from taiyu-len/master
moving things around + statics + forking + exec cleanup + fixed cmd_focus return + keep exec programs out of logs
Diffstat (limited to 'sway/main.c')
-rw-r--r-- | sway/main.c | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/sway/main.c b/sway/main.c index a7814364..7477b08c 100644 --- a/sway/main.c +++ b/sway/main.c @@ -2,40 +2,22 @@ #include <stdlib.h> #include <stdbool.h> #include <wlc/wlc.h> +#include <sys/wait.h> +#include <signal.h> #include "layout.h" #include "config.h" #include "log.h" #include "handlers.h" +static void sigchld_handle(int signal); int main(int argc, char **argv) { init_log(L_DEBUG); // TODO: Control this with command line arg init_layout(); - static struct wlc_interface interface = { - .output = { - .created = handle_output_created, - .destroyed = handle_output_destroyed, - .resolution = handle_output_resolution_change, - .focus = handle_output_focused - }, - .view = { - .created = handle_view_created, - .destroyed = handle_view_destroyed, - .focus = handle_view_focus, - .request = { - .geometry = handle_view_geometry_request - } - }, - .keyboard = { - .key = handle_key - }, - .pointer = { - .motion = handle_pointer_motion, - .button = handle_pointer_button - } - - }; + /* Signal handling */ + signal(SIGCHLD, sigchld_handle); + setenv("WLC_DIM", "0", 0); if (!wlc_init(&interface, argc, argv)) { @@ -50,3 +32,8 @@ int main(int argc, char **argv) { wlc_run(); return 0; } + +static void sigchld_handle(int signal) { + (void) signal; + while (waitpid((pid_t)-1, 0, WNOHANG) > 0); +} |