X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/29d83fc1e5d41ef6adb7984127ce5dc013b09815..211cc8dc907ee50ca6d383b8df16bba9a4d3ce2d:/src/os2/app.cpp?ds=sidebyside diff --git a/src/os2/app.cpp b/src/os2/app.cpp index 7daefe297d..6ef2a2253d 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -44,6 +44,7 @@ #else +#include #include #include @@ -786,15 +787,24 @@ bool wxApp::DoMessage() } #endif // wxUSE_THREADS + // // Process the message - if (!ProcessMessage((WXMSG *)&svCurrentMsg)) - { - ::WinDispatchMsg(vHabmain, (PQMSG)&svCurrentMsg); - } + // + DoMessage((WXMSG *)&svCurrentMsg); } return TRUE; } // end of wxApp::DoMessage +void wxApp::DoMessage( + WXMSG* pMsg +) +{ + if (!ProcessMessage((WXMSG *)&svCurrentMsg)) + { + ::WinDispatchMsg(vHabmain, (PQMSG)&svCurrentMsg); + } +} // end of wxApp::DoMessage + ////////////////////////////////////////////////////////////////////////////// // // Keep trying to process messages until WM_QUIT @@ -984,6 +994,16 @@ void wxApp::OnIdle( wxLog::FlushActive(); #endif // wxUSE_LOG +#if wxUSE_DC_CACHEING + // automated DC cache management: clear the cached DCs and bitmap + // if it's likely that the app has finished with them, that is, we + // get an idle event and we're not dragging anything. + if (!::WinGetKeyState(MK_LBUTTON) && + !::WinGetKeyState(MK_MBUTTON) && + !::WinGetKeyState(MK_RBUTTON)) + wxDC::ClearCache(); +#endif // wxUSE_DC_CACHEING + // // Send OnIdle events to all windows //