iChanging the behaviour to run on buttonrelease. - thingmenu - A simple graphical menu launcher for X11. Err bitreich.org 70
hgit clone git://bitreich.org/thingmenu URL:git://bitreich.org/thingmenu bitreich.org 70
1Log /scm/thingmenu/log.gph bitreich.org 70
1Files /scm/thingmenu/files.gph bitreich.org 70
1Refs /scm/thingmenu/refs.gph bitreich.org 70
1Tags /scm/thingmenu/tag bitreich.org 70
1LICENSE /scm/thingmenu/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 179f5949844bee93fdcc1d6b62327ded89a7e553 /scm/thingmenu/commit/179f5949844bee93fdcc1d6b62327ded89a7e553.gph bitreich.org 70
1parent 3330b885356850d35bf0594ba3e42aba078d5a10 /scm/thingmenu/commit/3330b885356850d35bf0594ba3e42aba078d5a10.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Mon, 12 Sep 2011 15:46:06 +0200 Err bitreich.org 70
i Err bitreich.org 70
iChanging the behaviour to run on buttonrelease. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M thingmenu.c | 84 +++++++++++++++++-------------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 45 insertions(+), 39 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/thingmenu.c b/thingmenu.c /scm/thingmenu/file/thingmenu.c.gph bitreich.org 70
i@@ -73,7 +73,7 @@ static void press(Entry *e); Err bitreich.org 70
i static void run(void); Err bitreich.org 70
i static void setup(void); Err bitreich.org 70
i static int textnw(const char *text, uint len); Err bitreich.org 70
i-static void unpress(void); Err bitreich.org 70
i+static void unpress(Entry *e); Err bitreich.org 70
i static void updateentries(void); Err bitreich.org 70
i Err bitreich.org 70
i /* variables */ Err bitreich.org 70
i@@ -147,7 +147,7 @@ buttonrelease(XEvent *e) Err bitreich.org 70
i Entry *en; Err bitreich.org 70
i Err bitreich.org 70
i if((en = findentry(ev->x, ev->y))) Err bitreich.org 70
i- unpress(); Err bitreich.org 70
i+ unpress(en); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i void Err bitreich.org 70
i@@ -322,38 +322,7 @@ initfont(const char *fontstr) Err bitreich.org 70
i void Err bitreich.org 70
i leavenotify(XEvent *e) Err bitreich.org 70
i { Err bitreich.org 70
i- unpress(); Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-void Err bitreich.org 70
i-runentry(Entry *e) Err bitreich.org 70
i-{ Err bitreich.org 70
i- char *shell; Err bitreich.org 70
i- Err bitreich.org 70
i- if (fork()) { Err bitreich.org 70
i- if (oneshot || e->forceexit) { Err bitreich.org 70
i- XDestroyWindow(dpy, win); Err bitreich.org 70
i- exit(0); Err bitreich.org 70
i- } Err bitreich.org 70
i- return; Err bitreich.org 70
i- } Err bitreich.org 70
i- if (fork()) Err bitreich.org 70
i- exit(0); Err bitreich.org 70
i- Err bitreich.org 70
i- shell = getenv("SHELL"); Err bitreich.org 70
i- if (!shell) Err bitreich.org 70
i- shell = "/bin/sh"; Err bitreich.org 70
i- Err bitreich.org 70
i- execlp(shell, basename(shell), "-c", e->cmd, (char *)NULL); Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-void Err bitreich.org 70
i-press(Entry *e) Err bitreich.org 70
i-{ Err bitreich.org 70
i- e->pressed = !e->pressed; Err bitreich.org 70
i- Err bitreich.org 70
i- runentry(e); Err bitreich.org 70
i- drawentry(e); Err bitreich.org 70
i+ unpress(NULL); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i void Err bitreich.org 70
i@@ -475,14 +444,51 @@ textnw(const char *text, uint len) Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i void Err bitreich.org 70
i-unpress() Err bitreich.org 70
i+runentry(Entry *e) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ char *shell; Err bitreich.org 70
i+ Err bitreich.org 70
i+ if (fork()) { Err bitreich.org 70
i+ if (oneshot || e->forceexit) { Err bitreich.org 70
i+ XDestroyWindow(dpy, win); Err bitreich.org 70
i+ exit(0); Err bitreich.org 70
i+ } Err bitreich.org 70
i+ return; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ if (fork()) Err bitreich.org 70
i+ exit(0); Err bitreich.org 70
i+ Err bitreich.org 70
i+ shell = getenv("SHELL"); Err bitreich.org 70
i+ if (!shell) Err bitreich.org 70
i+ shell = "/bin/sh"; Err bitreich.org 70
i+ Err bitreich.org 70
i+ execlp(shell, basename(shell), "-c", e->cmd, (char *)NULL); Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+void Err bitreich.org 70
i+press(Entry *e) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ e->pressed = !e->pressed; Err bitreich.org 70
i+ Err bitreich.org 70
i+ drawentry(e); Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+void Err bitreich.org 70
i+unpress(Entry *e) Err bitreich.org 70
i { Err bitreich.org 70
i int i; Err bitreich.org 70
i Err bitreich.org 70
i- for(i = 0; i < nentries; i++) { Err bitreich.org 70
i- if(entries[i]->pressed) { Err bitreich.org 70
i- entries[i]->pressed = 0; Err bitreich.org 70
i- drawentry(entries[i]); Err bitreich.org 70
i+ if (e != NULL) { Err bitreich.org 70
i+ e->pressed = !e->pressed; Err bitreich.org 70
i+ Err bitreich.org 70
i+ runentry(e); Err bitreich.org 70
i+ drawentry(e); Err bitreich.org 70
i+ } else { Err bitreich.org 70
i+ for(i = 0; i < nentries; i++) { Err bitreich.org 70
i+ if(entries[i]->pressed) { Err bitreich.org 70
i+ entries[i]->pressed = 0; Err bitreich.org 70
i+ drawentry(entries[i]); Err bitreich.org 70
i+ } Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
.
Response:
text/plain