//
wxASSERT_MSG(!m_pWindowDisabler, _T("disabling windows twice?"));
- m_pWindowDisabler = new wxWindowDisabler(this);
+ //
+ // Disables other app windows and window proc message processing
+ // until WinDismissDlg called
+ //
+ ::WinProcessDlg((HWND)GetHwnd());
+
+ //
+ // Before entering the modal loop, reset the "is in OnIdle()" flag (see
+ // comment in app.cpp)
+ //
+ extern bool gbInOnIdle;
+ bool bWasInOnIdle = gbInOnIdle;
+
+ gbInOnIdle = FALSE;
//
// Enter the modal loop
// a message came or no more idle processing to do
wxTheApp->DoMessage();
}
+ gbInOnIdle = bWasInOnIdle;
//
// Snd restore focus
//
// If we had disabled other app windows, reenable them back now because
// if they stay disabled Windows will activate another window (one
- // which is enabled, anyhow) and we will lose activation
+ // which is enabled, anyhow) and we will lose activation. We really don't
+ // do this in OS/2 since PM does this for us.
//
if (m_pWindowDisabler)
{
{
SetReturnCode(nRetCode);
Show(FALSE);
+ ::WinDismissDlg((HWND)GetHwnd(), nRetCode);
} // end of wxDialog::EndModal
// ----------------------------------------------------------------------------