|
|
@ -162,7 +162,7 @@ xerror(Display *dpy, XErrorEvent *ee) |
|
|
|
int |
|
|
|
int |
|
|
|
main(int argc, char *argv[]) |
|
|
|
main(int argc, char *argv[]) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i; |
|
|
|
int i, xfd; |
|
|
|
unsigned int mask; |
|
|
|
unsigned int mask; |
|
|
|
fd_set rd; |
|
|
|
fd_set rd; |
|
|
|
Bool readin = True; |
|
|
|
Bool readin = True; |
|
|
@ -181,6 +181,7 @@ main(int argc, char *argv[]) |
|
|
|
if(!dpy) |
|
|
|
if(!dpy) |
|
|
|
eprint("dwm: cannot open display\n"); |
|
|
|
eprint("dwm: cannot open display\n"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xfd = ConnectionNumber(dpy); |
|
|
|
screen = DefaultScreen(dpy); |
|
|
|
screen = DefaultScreen(dpy); |
|
|
|
root = RootWindow(dpy, screen); |
|
|
|
root = RootWindow(dpy, screen); |
|
|
|
|
|
|
|
|
|
|
@ -260,15 +261,15 @@ main(int argc, char *argv[]) |
|
|
|
FD_ZERO(&rd); |
|
|
|
FD_ZERO(&rd); |
|
|
|
if(readin) |
|
|
|
if(readin) |
|
|
|
FD_SET(STDIN_FILENO, &rd); |
|
|
|
FD_SET(STDIN_FILENO, &rd); |
|
|
|
FD_SET(ConnectionNumber(dpy), &rd); |
|
|
|
FD_SET(xfd, &rd); |
|
|
|
|
|
|
|
|
|
|
|
i = select(ConnectionNumber(dpy) + 1, &rd, 0, 0, 0); |
|
|
|
i = select(xfd + 1, &rd, 0, 0, 0); |
|
|
|
if(i == -1 && errno == EINTR) |
|
|
|
if(i == -1 && errno == EINTR) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
if(i < 0) |
|
|
|
if(i < 0) |
|
|
|
eprint("select failed\n"); |
|
|
|
eprint("select failed\n"); |
|
|
|
else if(i > 0) { |
|
|
|
else if(i > 0) { |
|
|
|
if(FD_ISSET(ConnectionNumber(dpy), &rd)) { |
|
|
|
if(FD_ISSET(xfd, &rd)) { |
|
|
|
while(XPending(dpy)) { |
|
|
|
while(XPending(dpy)) { |
|
|
|
XNextEvent(dpy, &ev); |
|
|
|
XNextEvent(dpy, &ev); |
|
|
|
if(handler[ev.type]) |
|
|
|
if(handler[ev.type]) |
|
|
|