From 25730264872c4edbf0a4c20750aa30473198a4bf Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 20 Jun 2010 13:23:36 +0000 Subject: libX11 git update 20/6/2010 --- libX11/src/xcb_io.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'libX11/src/xcb_io.c') diff --git a/libX11/src/xcb_io.c b/libX11/src/xcb_io.c index b9140e1ca..ebf217972 100644 --- a/libX11/src/xcb_io.c +++ b/libX11/src/xcb_io.c @@ -232,19 +232,25 @@ static xcb_generic_reply_t *poll_for_response(Display *dpy) void *response; xcb_generic_error_t *error; PendingRequest *req; - while(!(response = poll_for_event(dpy)) && - (req = dpy->xcb->pending_requests) && + + response = poll_for_event(dpy); + if (response) + return response; + + while((req = dpy->xcb->pending_requests) && !req->reply_waiter && xcb_poll_for_reply(dpy->xcb->connection, req->sequence, &response, &error)) { assert(XLIB_SEQUENCE_COMPARE(req->sequence, <=, dpy->request)); dpy->last_request_read = req->sequence; - if(!response) - dequeue_pending_request(dpy, req); + if(response) + return response; + dequeue_pending_request(dpy, req); if(error) return (xcb_generic_reply_t *) error; } - return response; + + return NULL; } static void handle_response(Display *dpy, xcb_generic_reply_t *response, Bool in_XReply) -- cgit v1.2.3