X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04ef50df3a0fa3c343800c554e609f98fc7575cc..2cc78389312dce6285d0d6b6e891d24372252ada:/src/msw/app.cpp?ds=sidebyside diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 7ad291e9d9..f542a094a8 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -115,7 +115,8 @@ #define _WIN32_IE 0x0200 #endif -#if _WIN32_IE >= 0x0300 +#if _WIN32_IE >= 0x0300 \ + && !( defined(__MINGW32__) && !wxCHECK_W32API_VERSION( 1, 0 ) ) #include #endif @@ -242,7 +243,7 @@ bool wxApp::Initialize() InitCommonControls(); #endif // __WIN95__ -#if wxUSE_OLE || wxUSE_DRAG_AND_DROP || wxUSE_DATAOBJ +#if wxUSE_OLE || wxUSE_DRAG_AND_DROP #ifdef __WIN16__ // for OLE, enlarge message queue to be as large as possible @@ -250,6 +251,7 @@ bool wxApp::Initialize() while (!SetMessageQueue(iMsg) && (iMsg -= 8)) ; #endif // Win16 + // we need to initialize OLE library if ( FAILED(::OleInitialize(NULL)) ) wxLogError(_("Cannot initialize OLE")); @@ -717,7 +719,7 @@ int wxEntry(WXHINSTANCE hInstance, wxCHECK_MSG( wxApp::GetInitializerFunction(), 0, wxT("No initializer - use IMPLEMENT_APP macro.") ); - wxTheApp = (*wxApp::GetInitializerFunction()) (); + wxTheApp = (wxApp*) (*wxApp::GetInitializerFunction()) (); } wxCHECK_MSG( wxTheApp, 0, wxT("You have to define an instance of wxApp!") ); @@ -1110,6 +1112,14 @@ void wxApp::OnIdle(wxIdleEvent& event) 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 (!::GetKeyState(MK_LBUTTON) && !::GetKeyState(MK_MBUTTON) && !::GetKeyState(MK_RBUTTON)) + wxDC::ClearCache(); +#endif // wxUSE_DC_CACHEING + // Send OnIdle events to all windows if ( SendIdleEvents() ) {