diff --git a/api/comms.c b/api/comms.c index d3baae9..609b95a 100644 --- a/api/comms.c +++ b/api/comms.c @@ -138,10 +138,16 @@ CommsSend(const char *buf, unsigned int len) static Bool ev_check(Display *d __UNUSED__, XEvent *ev, XPointer p __UNUSED__) { - if (((ev->type == ClientMessage) && (ev->xclient.window == my_win)) || - ((ev->type == DestroyNotify) && - (ev->xdestroywindow.window == comms_win))) - return True; + if (ev->type == ClientMessage) + { + if (ev->xclient.window == my_win) + return True; + } + else if (ev->type == DestroyNotify) + { + if (ev->xdestroywindow.window == comms_win) + return True; + } return False; } @@ -151,13 +157,20 @@ CommsWaitForMessage(void) XEvent ev; char *msg = NULL; - while ((!msg) && (comms_win)) + for (;;) { XIfEvent(disp, &ev, ev_check, NULL); if (ev.type == DestroyNotify) + { comms_win = 0; + break; + } else + { msg = CommsHandleClientMessage(&ev); + if (msg) + break; + } } return msg; }