X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a8680e3e0e5066d35a8f4fd43294ba4bfcaf4ba7..245f35816d761212279e8cf223475efb7a367553:/src/motif/filedlg.cpp diff --git a/src/motif/filedlg.cpp b/src/motif/filedlg.cpp index 27ad5f831f..ed2ca5e9c4 100644 --- a/src/motif/filedlg.cpp +++ b/src/motif/filedlg.cpp @@ -227,9 +227,7 @@ int wxFileDialog::ShowModal() // static char fileBuf[512]; Widget parentWidget = (Widget) 0; if (m_parent) - { parentWidget = (Widget) m_parent->GetTopWidget(); - } else parentWidget = (Widget) wxTheApp->GetTopLevelWidget(); // prepare the arg list @@ -349,28 +347,25 @@ int wxFileDialog::ShowModal() wxEndBusyCursor(); XtAddGrab(XtParent(fileSel), TRUE, FALSE); + XtAppContext context = (XtAppContext) wxTheApp->GetAppContext(); XEvent event; while (!m_fileSelectorReturned) { - XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll); + XtAppNextEvent(context, &event); + XtDispatchEvent(&event); } XtRemoveGrab(XtParent(fileSel)); - XmUpdateDisplay((Widget) wxTheApp->GetTopLevelWidget()); // Experimental + // XmUpdateDisplay((Widget) wxTheApp->GetTopLevelWidget()); // Experimental + + Display* display = XtDisplay(fileSel); - // XtDestroyWidget(fileSel); XtUnmapWidget(XtParent(fileSel)); XtDestroyWidget(XtParent(fileSel)); // Now process all events, because otherwise // this might remain on the screen - XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE); - while (XtAppPending((XtAppContext) wxTheApp->GetAppContext())) - { - XFlush(XtDisplay((Widget) wxTheApp->GetTopLevelWidget())); - XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event); - XtDispatchEvent(&event); - } + wxFlushEvents(display); m_path = m_fileSelectorAnswer; m_fileName = wxFileNameFromPath(m_fileSelectorAnswer);