Evoke will now correctly shutdown (try) all running windows, when

session should be logged out. Previous version (althought commented) was
closing all windows (buttons and rest are counted too), not their main
window. Thanks to some old code from babaya project I found, XmuClientWindow
is what I needed, so emulation is provided to avoid linking with libXmu.

Also added some more signals to detect quitting.

Pending issue: I'm getting strange sound driver locks when X are started
via evoke. This is un-reporoduceable when evoke is started from gui console. 
This still needs to be investigate.
This commit is contained in:
Sanel Zukan
2007-09-17 10:36:24 +00:00
parent 841a106a28
commit 00f5f2d59a
6 changed files with 122 additions and 51 deletions

View File

@@ -166,9 +166,20 @@ int main(int argc, char** argv) {
service->setup_atoms(fl_display);
signal(SIGINT, quit_signal);
signal(SIGINT, quit_signal);
signal(SIGTERM, quit_signal);
signal(SIGKILL, quit_signal);
signal(SIGQUIT, quit_signal);
#ifdef USE_SIGHUP
/*
* This is mostly used when we get request to shutdown session and close/kill all windows.
* If evoke is started from gui console (xterm, rxvt), closing that window we will get
* SIGHUP since terminal will disconnect all controlling processes. On other hand, if evoke
* is started as session carrier (eg. run from xinitrc), this is not needed.
*/
signal(SIGHUP, quit_signal);
#endif
service->start();