tad@cathedral.cerc.wvu.wvnet.edu (Tad Alan Davis) (10/04/90)
I am trying to get a widget to update while in a callback, I was
using the following on sun3,
void updateWidget(w)
Widget w;
{
int count = 0;
XEvent event;
Display *disp;
while ((count < 5000) &&
!XCheckTypedWindowEvent(XtDisplay(w), XtWindow(w), Expose, &event))
{
count++;
}
XtDispatchEvent(&event);
disp = XtDisplay(w);
XFlush(disp);
}
but when I moved to sun4, I would get
Error: Couldn't find per display information
Noticing that event.type was 0 in these cases, I just decided not
to update, so I added an if.
void updateWidget(w)
Widget w;
{
int count = 0;
XEvent event;
Display *disp;
while ((count < 5000) &&
!XCheckTypedWindowEvent(XtDisplay(w), XtWindow(w), Expose, &event))
{
count++;
}
if (event.type)
{
XtDispatchEvent(&event);
disp = XtDisplay(w);
XFlush(disp);
}
}
This seems to work if I'm only trying to update 1-5 widgets while in
the callback, once I get up to 10 widgets, I get the same error, with
event.type = 12 this time.
The context is a set of gauges which need to be updated throughout the
course of a simulation run. Any fixes or ideas on how this can be
approached in a more sound way?
--
Tad Davis
Bell Atlantic Knowledge Systems