some other small fixes 2ffdc193
Anselm R.Garbe · 2006-08-14 15:11 2 file(s) · +12 −10
event.c +4 −2
254 254
	XKeyEvent *ev = &e->xkey;
255 255
256 256
	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
257 -
	for(i = 0; i < len; i++)
257 +
	for(i = 0; i < len; i++) {
258 258
		if(keysym == key[i].keysym &&
259 -
				CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) {
259 +
				CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
260 +
		{
260 261
			if(key[i].func)
261 262
				key[i].func(&key[i].arg);
262 263
			return;
263 264
		}
265 +
	}
264 266
}
265 267
266 268
static void
main.c +8 −8
196 196
197 197
	XSetErrorHandler(NULL);
198 198
	xerrorxlib = XSetErrorHandler(xerror);
199 +
	XSync(dpy, False);
199 200
200 201
	/* init atoms */
201 202
	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
269 270
		if(i < 0)
270 271
			eprint("select failed\n");
271 272
		else if(i > 0) {
272 -
			if(FD_ISSET(xfd, &rd)) {
273 -
				while(XPending(dpy)) {
274 -
					XNextEvent(dpy, &ev);
275 -
					if(handler[ev.type])
276 -
						(handler[ev.type])(&ev); /* call handler */
277 -
				}
278 -
			}
279 273
			if(readin && FD_ISSET(STDIN_FILENO, &rd)) {
280 274
				readin = NULL != fgets(stext, sizeof(stext), stdin);
281 275
				if(readin)
284 278
					strcpy(stext, "broken pipe");
285 279
				drawstatus();
286 280
			}
281 +
			if(FD_ISSET(xfd, &rd)) {
282 +
				while(XPending(dpy)) {
283 +
					XNextEvent(dpy, &ev);
284 +
					if(handler[ev.type])
285 +
						(handler[ev.type])(&ev); /* call handler */
286 +
				}
287 +
			}
287 288
		}
288 289
	}
289 -
290 290
	cleanup();
291 291
	XCloseDisplay(dpy);
292 292