X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_main.c;h=68c530c980d974ae65355ce0bb06176b275166c2;hb=3b06156b86b860856303b3673e7aa09cc7624d4a;hp=1806698c3afa40d9da541fea41d4725fc086b251;hpb=b24329e0e93226fdcef84d3284b1a9eae5686bac;p=freeglut diff --git a/src/freeglut_main.c b/src/freeglut_main.c index 1806698..68c530c 100644 --- a/src/freeglut_main.c +++ b/src/freeglut_main.c @@ -452,6 +452,16 @@ static void fgSleepForEvents( void ) msec = MIN( msec, 10 ); /* XXX Dumb; forces granularity to .01sec */ #if TARGET_HOST_UNIX_X11 + /* + * Possibly due to aggressive use of XFlush() and friends, + * it is possible to have our socket drained but still have + * unprocessed events. (Or, this may just be normal with + * X, anyway?) We do non-trivial processing of X events + * after tham in event-reading loop, in any case, so we + * need to allow that we may have an empty socket but non- + * empty event queue. + */ + if( ! XPending( fgDisplay.Display ) ) { fd_set fdset; int err;