+
+ XA( XInternalConnectionNumbers(display, &xfds, &nxfds) );
+ if (polls_alloc <= nxfds) {
+ polls_alloc= nxfds + polls_alloc + 1;
+ polls= realloc(polls, sizeof(*polls) * polls_alloc);
+ if (!polls) diee("realloc for pollfds");
+ }
+ for (i=0; i<nxfds; i++) {
+ polls[i].fd= xfds[i];
+ polls[i].events= wantedevents;
+ polls[i].revents= 0;
+ }
+ XFree(xfds);
+
+ polls[i].fd= ConnectionNumber(display);
+ polls[i].events= wantedevents;
+
+ r= poll(polls, nxfds+1, motion_deferred ? 0 : 200);
+ if (r<0) diee("poll");
+
+ for (i=0; i<nxfds; i++)
+ if (polls[i].revents)
+ XProcessInternalConnection(display, polls[i].fd);
+
+ r= XCheckMaskEvent(display,~0UL,&event);
+ if (!r) {
+ if (motion_deferred) {