- XEvent event;
-
- // Loop until we signal that the dialog should be closed
- while ((wxModalShowingStack.Number() > 0) && ((int)(wxModalShowingStack.First()->Data()) != 0))
- {
- // XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll);
-
- XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event);
- wxTheApp->ProcessXEvent((WXEvent*) &event);
-
- if (XtAppPending( (XtAppContext) wxTheApp->GetAppContext() ) == 0)
- {
- if (!wxTheApp->ProcessIdle())
- {
-#if wxUSE_THREADS
- // leave the main loop to give other threads a chance to
- // perform their GUI work
- wxMutexGuiLeave();
- wxUsleep(20);
- wxMutexGuiEnter();
-#endif
- }
- }
- }
-
- // Remove modal dialog flag from stack
- wxNode *node = wxModalShowingStack.First();
- if (node)
- delete node;