some other small fixes

master
Anselm R.Garbe 2006-08-14 15:11:02 +02:00
parent 0fe52c63ea
commit 2ffdc1936c
2 changed files with 12 additions and 10 deletions

View File

@ -254,13 +254,15 @@ keypress(XEvent *e)
XKeyEvent *ev = &e->xkey; XKeyEvent *ev = &e->xkey;
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
for(i = 0; i < len; i++) for(i = 0; i < len; i++) {
if(keysym == key[i].keysym && if(keysym == key[i].keysym &&
CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) { CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
{
if(key[i].func) if(key[i].func)
key[i].func(&key[i].arg); key[i].func(&key[i].arg);
return; return;
} }
}
} }
static void static void

16
main.c
View File

@ -196,6 +196,7 @@ main(int argc, char *argv[])
XSetErrorHandler(NULL); XSetErrorHandler(NULL);
xerrorxlib = XSetErrorHandler(xerror); xerrorxlib = XSetErrorHandler(xerror);
XSync(dpy, False);
/* init atoms */ /* init atoms */
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
@ -269,13 +270,6 @@ main(int argc, char *argv[])
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(xfd, &rd)) {
while(XPending(dpy)) {
XNextEvent(dpy, &ev);
if(handler[ev.type])
(handler[ev.type])(&ev); /* call handler */
}
}
if(readin && FD_ISSET(STDIN_FILENO, &rd)) { if(readin && FD_ISSET(STDIN_FILENO, &rd)) {
readin = NULL != fgets(stext, sizeof(stext), stdin); readin = NULL != fgets(stext, sizeof(stext), stdin);
if(readin) if(readin)
@ -284,9 +278,15 @@ main(int argc, char *argv[])
strcpy(stext, "broken pipe"); strcpy(stext, "broken pipe");
drawstatus(); drawstatus();
} }
if(FD_ISSET(xfd, &rd)) {
while(XPending(dpy)) {
XNextEvent(dpy, &ev);
if(handler[ev.type])
(handler[ev.type])(&ev); /* call handler */
}
}
} }
} }
cleanup(); cleanup();
XCloseDisplay(dpy); XCloseDisplay(dpy);