diff --git a/src/bin/e_main.c b/src/bin/e_main.c index f055f24b6..65e74cb55 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -242,33 +242,33 @@ elm_main(int argc, char **argv) if (!getenv("NOTIFY_SOCKET")) { TS("Signal Trap"); +#ifndef HAVE_WAYLAND action.sa_sigaction = e_sigseg_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGSEGV, &action, NULL); - - action.sa_sigaction = e_sigill_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGILL, &action, NULL); - - action.sa_sigaction = e_sigfpe_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGFPE, &action, NULL); - -#ifndef HAVE_WAYLAND_ONLY - action.sa_sigaction = e_sigbus_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGBUS, &action, NULL); + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGSEGV, &action, NULL); #endif + action.sa_sigaction = e_sigill_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGILL, &action, NULL); +#ifndef HAVE_WAYLAND + action.sa_sigaction = e_sigfpe_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGFPE, &action, NULL); - action.sa_sigaction = e_sigabrt_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGABRT, &action, NULL); - TS("Signal Trap Done"); + action.sa_sigaction = e_sigbus_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGBUS, &action, NULL); + + action.sa_sigaction = e_sigabrt_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGABRT, &action, NULL); +#endif + TS("Signal Trap Done"); } t = ecore_time_unix_get(); diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c index 4d6f9e5dd..5b66433be 100644 --- a/src/bin/e_signals.c +++ b/src/bin/e_signals.c @@ -68,10 +68,6 @@ _e_write_safe_int(int fd, const char *buf, size_t size) static void _e_crash(void) { -#ifdef HAVE_WAYLAND - if (e_comp->comp_type == E_PIXMAP_TYPE_WL) - return; -#endif #ifndef HAVE_WAYLAND_ONLY _e_x_composite_shutdown(); ecore_x_pointer_ungrab(); @@ -100,7 +96,9 @@ e_sigill_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNU // by a SEGV. kill(getpid(), SIGUSR1); kill(getpid(), SIGSEGV); +#ifndef HAVE_WAYLAND pause(); +#endif /* _e_x_composite_shutdown(); */ /* ecore_x_pointer_ungrab(); */ /* ecore_x_keyboard_ungrab(); */