diff options
author | ian <ian> | 2007-11-28 16:35:52 +0000 |
---|---|---|
committer | ian <ian> | 2007-11-28 16:35:52 +0000 |
commit | 8b3cd2243acdd75581b9d50c9ca9fb60b98cd494 (patch) | |
tree | e9e0997ff66575ac3faa75a94d2586464e895d67 /kbfunc.c | |
parent | f14a3eeebff6e0a378b38629bc1202af7e74b420 (diff) | |
download | cwm-8b3cd2243acdd75581b9d50c9ca9fb60b98cd494.tar.gz cwm-8b3cd2243acdd75581b9d50c9ca9fb60b98cd494.tar.xz cwm-8b3cd2243acdd75581b9d50c9ca9fb60b98cd494.zip |
Add a "restart wm" function. ok oga@
Diffstat (limited to 'kbfunc.c')
-rw-r--r-- | kbfunc.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/kbfunc.c b/kbfunc.c index 1275a83..ae9d9ad 100644 --- a/kbfunc.c +++ b/kbfunc.c @@ -263,6 +263,20 @@ kbfunc_exec(struct client_ctx *scratch, void *arg) struct stat sb; struct menu_q menuq; struct menu *mi; + char *label; + + int cmd = (int)arg; + switch(cmd) { + case CWM_EXEC_PROGRAM: + label = "exec"; + break; + case CWM_EXEC_WM: + label = "wm"; + break; + default: + err(1, "kbfunc_exec: invalid cmd %d", cmd); + /*NOTREACHED*/ + } if (getgroups(0, mygroups) == -1) err(1, "getgroups failure"); @@ -320,8 +334,19 @@ kbfunc_exec(struct client_ctx *scratch, void *arg) } if ((mi = search_start(&menuq, - search_match_exec, NULL, NULL, "exec", 1)) != NULL) - u_spawn(mi->text); + search_match_exec, NULL, NULL, label, 1)) != NULL) { + switch (cmd) { + case CWM_EXEC_PROGRAM: + u_spawn(mi->text); + break; + case CWM_EXEC_WM: + exec_wm(mi->text); + break; + default: + err(1, "kb_func: egad, cmd changed value!"); + break; + } + } if (mi != NULL && mi->dummy) xfree(mi); |