equal
deleted
inserted
replaced
160 } |
160 } |
161 |
161 |
162 int |
162 int |
163 main(int argc, char *argv[]) |
163 main(int argc, char *argv[]) |
164 { |
164 { |
165 int i; |
165 int i, xfd; |
166 unsigned int mask; |
166 unsigned int mask; |
167 fd_set rd; |
167 fd_set rd; |
168 Bool readin = True; |
168 Bool readin = True; |
169 Window w; |
169 Window w; |
170 XEvent ev; |
170 XEvent ev; |
179 |
179 |
180 dpy = XOpenDisplay(0); |
180 dpy = XOpenDisplay(0); |
181 if(!dpy) |
181 if(!dpy) |
182 eprint("dwm: cannot open display\n"); |
182 eprint("dwm: cannot open display\n"); |
183 |
183 |
|
184 xfd = ConnectionNumber(dpy); |
184 screen = DefaultScreen(dpy); |
185 screen = DefaultScreen(dpy); |
185 root = RootWindow(dpy, screen); |
186 root = RootWindow(dpy, screen); |
186 |
187 |
187 otherwm = False; |
188 otherwm = False; |
188 XSetErrorHandler(xerrorstart); |
189 XSetErrorHandler(xerrorstart); |
258 XSync(dpy, False); |
259 XSync(dpy, False); |
259 while(running) { |
260 while(running) { |
260 FD_ZERO(&rd); |
261 FD_ZERO(&rd); |
261 if(readin) |
262 if(readin) |
262 FD_SET(STDIN_FILENO, &rd); |
263 FD_SET(STDIN_FILENO, &rd); |
263 FD_SET(ConnectionNumber(dpy), &rd); |
264 FD_SET(xfd, &rd); |
264 |
265 |
265 i = select(ConnectionNumber(dpy) + 1, &rd, 0, 0, 0); |
266 i = select(xfd + 1, &rd, 0, 0, 0); |
266 if(i == -1 && errno == EINTR) |
267 if(i == -1 && errno == EINTR) |
267 continue; |
268 continue; |
268 if(i < 0) |
269 if(i < 0) |
269 eprint("select failed\n"); |
270 eprint("select failed\n"); |
270 else if(i > 0) { |
271 else if(i > 0) { |
271 if(FD_ISSET(ConnectionNumber(dpy), &rd)) { |
272 if(FD_ISSET(xfd, &rd)) { |
272 while(XPending(dpy)) { |
273 while(XPending(dpy)) { |
273 XNextEvent(dpy, &ev); |
274 XNextEvent(dpy, &ev); |
274 if(handler[ev.type]) |
275 if(handler[ev.type]) |
275 (handler[ev.type])(&ev); /* call handler */ |
276 (handler[ev.type])(&ev); /* call handler */ |
276 } |
277 } |