release any grabs we may have... just in case

SVN revision: 15358
This commit is contained in:
Carsten Haitzler 2005-06-16 06:29:32 +00:00
parent 650bb6ed85
commit 6f711f3808
1 changed files with 20 additions and 0 deletions

View File

@ -22,6 +22,10 @@ e_sigseg_act(int x, siginfo_t *info, void *data)
write(2, "**** Printing Backtrace... *****\n\n", 34); write(2, "**** Printing Backtrace... *****\n\n", 34);
size = backtrace(array, 255); size = backtrace(array, 255);
backtrace_symbols_fd(array, size, 2); backtrace_symbols_fd(array, size, 2);
ecore_x_pointer_ungrab();
ecore_x_keyboard_ungrab();
ecore_x_ungrab();
ecore_x_sync();
e_alert_show("This is very bad. Enlightenment has segfaulted.\n" e_alert_show("This is very bad. Enlightenment has segfaulted.\n"
"This is not meant to happen and is likely a sign of a\n" "This is not meant to happen and is likely a sign of a\n"
"bug in Enlightenment or the libraries it relies on.\n" "bug in Enlightenment or the libraries it relies on.\n"
@ -43,6 +47,10 @@ void
e_sigseg_act(int x, siginfo_t *info, void *data) e_sigseg_act(int x, siginfo_t *info, void *data)
{ {
write(2, "**** SEGMENTATION FAULT ****\n", 29); write(2, "**** SEGMENTATION FAULT ****\n", 29);
ecore_x_pointer_ungrab();
ecore_x_keyboard_ungrab();
ecore_x_ungrab();
ecore_x_sync();
e_alert_show("This is very bad. Enlightenment has segfaulted.\n" e_alert_show("This is very bad. Enlightenment has segfaulted.\n"
"This is not meant to happen and is likely a sign of a\n" "This is not meant to happen and is likely a sign of a\n"
"bug in Enlightenment or the libraries it relies on.\n" "bug in Enlightenment or the libraries it relies on.\n"
@ -65,6 +73,10 @@ void
e_sigill_act(int x, siginfo_t *info, void *data) e_sigill_act(int x, siginfo_t *info, void *data)
{ {
write(2, "**** ILLEGAL INSTRUCTION ****\n", 30); write(2, "**** ILLEGAL INSTRUCTION ****\n", 30);
ecore_x_pointer_ungrab();
ecore_x_keyboard_ungrab();
ecore_x_ungrab();
ecore_x_sync();
e_alert_show("This is very bad. Enlightenment has executed and illegal\n" e_alert_show("This is very bad. Enlightenment has executed and illegal\n"
"instruction. This is most likely because Enlightenment or\n" "instruction. This is most likely because Enlightenment or\n"
"a library it depends on has been compiled for a CPU type\n" "a library it depends on has been compiled for a CPU type\n"
@ -87,6 +99,10 @@ void
e_sigfpe_act(int x, siginfo_t *info, void *data) e_sigfpe_act(int x, siginfo_t *info, void *data)
{ {
write(2, "**** FLOATING POINT EXCEPTION ****\n", 35); write(2, "**** FLOATING POINT EXCEPTION ****\n", 35);
ecore_x_pointer_ungrab();
ecore_x_keyboard_ungrab();
ecore_x_ungrab();
ecore_x_sync();
e_alert_show("This is very bad. Enlightenment has recieved a floating\n" e_alert_show("This is very bad. Enlightenment has recieved a floating\n"
"point exception. This is probably due to a divide by 0\n" "point exception. This is probably due to a divide by 0\n"
"in Enlightenment or a library it depends on.\n" "in Enlightenment or a library it depends on.\n"
@ -108,6 +124,10 @@ void
e_sigbus_act(int x, siginfo_t *info, void *data) e_sigbus_act(int x, siginfo_t *info, void *data)
{ {
write(2, "**** BUS ERROR ****\n", 21); write(2, "**** BUS ERROR ****\n", 21);
ecore_x_pointer_ungrab();
ecore_x_keyboard_ungrab();
ecore_x_ungrab();
ecore_x_sync();
e_alert_show("This is very bad. Enlightenment has recieved a bus error.\n" e_alert_show("This is very bad. Enlightenment has recieved a bus error.\n"
"This could be for many reasons - accessing memory not in\n" "This could be for many reasons - accessing memory not in\n"
"its available address space or unable to be paged in.\n" "its available address space or unable to be paged in.\n"