main.c
changeset 265 573b1c4a71a4
parent 262 d659a2dce2b5
child 266 e8aa8f6e3481
equal deleted inserted replaced
264:afcea99a4f3f 265:573b1c4a71a4
   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 				}