|
[PATCH 6/11] icesm: wait for the end of the .icewm/shutdown script: msg#00019window-managers.icewm.devel
a) this waits for the end of the .icewm/shutdown script but this didn't solve my problem with nautilus b) always return a pid from run/start functions bert wesarg --- diff -urp old/src/icesm.cc new/src/icesm.cc --- old/src/icesm.cc 2006-09-10 18:12:11.000000000 +0200 +++ new/src/icesm.cc 2006-11-12 19:18:47.050732961 +0100 @@ -17,12 +17,14 @@ public: catchSignal(SIGINT); } - void runScript(const char *scriptName) { + void runScript(const char *scriptName, bool wait = false) { char *scriptFile = app->findConfigFile(scriptName, X_OK); const char *args[] = { scriptFile, 0, 0 }; MSG(("Running session script: %s", scriptFile)); - app->runProgram(scriptFile, args); + int pid = app->runProgram(scriptFile, args); + if (wait) + app->waitProgram(pid); delete[] scriptFile; } @@ -110,7 +112,7 @@ int main(int argc, char **argv) { xapp.mainLoop(); - xapp.runScript("shutdown"); + xapp.runScript("shutdown", true); xapp.runIcewmtray(true); xapp.runWM(true); xapp.runIcewmbg(true); diff -urp old/src/wmapp.cc new/src/wmapp.cc --- old/src/wmapp.cc 2006-09-10 18:12:11.000000000 +0200 +++ new/src/wmapp.cc 2006-11-12 19:18:47.051733300 +0100 @@ -980,25 +980,26 @@ void YWMApp::restartClient(const char *p manager->manageClients(); } -void YWMApp::runOnce(const char *resource, const char *path, char *const *args) { +int YWMApp::runOnce(const char *resource, const char *path, char *const *args) { Window win(manager->findWindow(resource)); if (win) { YFrameWindow * frame(manager->findFrame(win)); if (frame) frame->activateWindow(true); else XMapRaised(xapp->display(), win); + return -1; } else - runProgram(path, args); + return runProgram(path, args); } -void YWMApp::runCommandOnce(const char *resource, const char *cmdline) { +int YWMApp::runCommandOnce(const char *resource, const char *cmdline) { /// TODO #warning calling /bin/sh is considered to be bloat char const *const argv[] = { "/bin/sh", "-c", cmdline, NULL }; if (resource) - runOnce(resource, argv[0], (char *const *) argv); + return runOnce(resource, argv[0], (char *const *) argv); else - runProgram(argv[0], (char *const *) argv); + return runProgram(argv[0], (char *const *) argv); } void YWMApp::actionPerformed(YAction *action, unsigned int /*modifiers*/) { diff -urp old/src/wmapp.h new/src/wmapp.h --- old/src/wmapp.h 2006-09-10 18:12:10.000000000 +0200 +++ new/src/wmapp.h 2006-11-12 19:18:47.051733300 +0100 @@ -36,8 +36,8 @@ public: #endif void restartClient(const char *path, char *const *args); - void runOnce(const char *resource, const char *path, char *const *args); - void runCommandOnce(const char *resource, const char *cmdline); + int runOnce(const char *resource, const char *path, char *const *args); + int runCommandOnce(const char *resource, const char *cmdline); static YCursor sizeRightPointer; static YCursor sizeTopRightPointer; diff -urp old/src/yapp.cc new/src/yapp.cc --- old/src/yapp.cc 2006-09-10 18:12:11.000000000 +0200 +++ new/src/yapp.cc 2006-11-12 19:18:47.052733639 +0100 @@ -454,10 +454,10 @@ int YApplication::waitProgram(int p) { return status; } -void YApplication::runCommand(const char *cmdline) { +int YApplication::runCommand(const char *cmdline) { /// TODO #warning calling /bin/sh is considered to be bloat char const * argv[] = { "/bin/sh", "-c", cmdline, NULL }; - runProgram(argv[0], argv); + return runProgram(argv[0], argv); } #ifndef NO_CONFIGURE diff -urp old/src/yapp.h new/src/yapp.h --- old/src/yapp.h 2006-09-10 18:12:11.000000000 +0200 +++ new/src/yapp.h 2006-11-12 19:18:47.052733639 +0100 @@ -29,7 +29,7 @@ public: int runProgram(const char *path, const char *const *args); int waitProgram(int p); - void runCommand(const char *prog); + int runCommand(const char *prog); static const char *getPrivConfDir(); ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [PATCH 5/11] .icewm/theme: avoid multi # lines: 00019, Bert Wesarg |
|---|---|
| Next by Date: | [PATCH 7/11] keybindings to change layer of window up/down: 00019, Bert Wesarg |
| Previous by Thread: | [PATCH 5/11] .icewm/theme: avoid multi # linesi: 00019, Bert Wesarg |
| Next by Thread: | [PATCH 7/11] keybindings to change layer of window up/down: 00019, Bert Wesarg |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |