rjohn@P776-2S.HAC.COM (Richard Johnson) (07/21/89)
Please forward this bug report to the folks at MIT, etc.
If there are no displays (x server connections) made from an application
then the X intrinsics will not perform callback services on "other"
input sources (ones set up with XtAppAddInput or XtAppAddTimeOut).
"Other" input is given a chance along with all the x server connections
in a round robin fashion but only if there is at least one x server
connection.
the following change was made to lib/Xt/NextEvent.c:XtAppNextEvent
to fix this problem:
561,569c561,571
< for (i = 1; i <= app->count; i++) {
< d = (i + app->last) % app->count;
< if (d == 0) DoOtherSources(app);
< if (XEventsQueued(app->list[d], QueuedAfterFlush) > 0) {
< XNextEvent(app->list[d], event);
< app->last = d;
< if (event->xany.type == MappingNotify)
< _RefreshMapping(event);
< return;
---
> if (app->count > 0) {
> for (i = 1; i <= app->count; i++) {
> d = (i + app->last) % app->count;
> if (d == 0) DoOtherSources(app);
> if (XEventsQueued(app->list[d], QueuedAfterFlush) > 0) {
> XNextEvent(app->list[d], event);
> app->last = d;
> if (event->xany.type == MappingNotify)
> _RefreshMapping(event);
> return;
> }
571a574,577
> else {
> DoOtherSources(app);
> }
>