tmade stdin reader more robust - dwm - [fork] customized build of dwm, the dyna… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit eb756ee169ad0c94167ff41a9ab2712b348afe4f | |
parent 0e5c8198bc5a69e87b0114b81d6569188828edfa | |
Author: Anselm R. Garbe <[email protected]> | |
Date: Fri, 14 Jul 2006 12:08:32 +0200 | |
made stdin reader more robust | |
Diffstat: | |
M client.c | 13 +++++++++---- | |
M main.c | 18 +++++++++++++----- | |
2 files changed, 22 insertions(+), 9 deletions(-) | |
--- | |
diff --git a/client.c b/client.c | |
t@@ -404,8 +404,6 @@ manage(Window w, XWindowAttributes *wa) | |
c->next = *l; /* *l == nil */ | |
*l = c; | |
- XMapRaised(dpy, c->win); | |
- XMapRaised(dpy, c->title); | |
XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, | |
GrabModeAsync, GrabModeSync, None, None); | |
XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, | |
t@@ -418,10 +416,17 @@ manage(Window w, XWindowAttributes *wa) | |
|| ((c->maxw == c->minw) && (c->maxh == c->minh)); | |
arrange(NULL); | |
- if(c->tags[tsel]) | |
+ /* mapping the window now prevents flicker */ | |
+ if(c->tags[tsel]) { | |
+ XMapRaised(dpy, c->win); | |
+ XMapRaised(dpy, c->title); | |
focus(c); | |
- else | |
+ } | |
+ else { | |
ban_client(c); | |
+ XMapRaised(dpy, c->win); | |
+ XMapRaised(dpy, c->title); | |
+ } | |
} | |
void | |
diff --git a/main.c b/main.c | |
t@@ -264,6 +264,10 @@ main(int argc, char *argv[]) | |
XDefineCursor(dpy, barwin, cursor[CurNormal]); | |
XMapRaised(dpy, barwin); | |
+ dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, scree… | |
+ dc.gc = XCreateGC(dpy, root, 0, 0); | |
+ draw_bar(); | |
+ | |
issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); | |
wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ | |
t@@ -272,15 +276,12 @@ main(int argc, char *argv[]) | |
XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); | |
- dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, scree… | |
- dc.gc = XCreateGC(dpy, root, 0, 0); | |
- | |
strcpy(stext, "dwm-"VERSION); | |
scan_wins(); | |
- draw_bar(); | |
/* main event loop, reads status text from stdin as well */ | |
while(running) { | |
+Mainloop: | |
FD_ZERO(&rd); | |
FD_SET(0, &rd); | |
FD_SET(ConnectionNumber(dpy), &rd); | |
t@@ -298,8 +299,15 @@ main(int argc, char *argv[]) | |
} | |
if(FD_ISSET(0, &rd)) { | |
i = n = 0; | |
- while((i = getchar()) != '\n' && n < sizeof(st… | |
+ for(;;) { | |
+ if((i = getchar()) == EOF) { | |
+ stext[0] = 0; | |
+ goto Mainloop; | |
+ } | |
+ if(i == '\n' || n >= sizeof(stext) - 1) | |
+ break; | |
stext[n++] = i; | |
+ } | |
stext[n] = 0; | |
draw_bar(); | |
} |