some other small fixes
parent
0fe52c63ea
commit
2ffdc1936c
6
event.c
6
event.c
|
@ -254,14 +254,16 @@ 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
|
||||||
leavenotify(XEvent *e)
|
leavenotify(XEvent *e)
|
||||||
|
|
16
main.c
16
main.c
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue