X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/51c1d535fc3314e5de95fc4472f4a7e27a2ebeb6..f3412ea74858605b2d52c97a2c916ffca8d55c98:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index a8ccb45bae..40ef90f53a 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -301,7 +301,7 @@ bool wxApp::RegisterWindowClasses( if (!::WinRegisterClass( vHab ,wxCanvasClassName ,wxWndProc - ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT + ,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT | CS_CLIPCHILDREN ,sizeof(ULONG) )) { @@ -760,6 +760,12 @@ bool wxApp::ProcessMessage( } #endif // wxUSE_TOOLTIPS + // + // We must relay Timer events to wxTimer's processing function + // + if (pMsg->msg == WM_TIMER) + wxTimerProc(NULL, 0, (int)pMsg->mp1, 0); + // // For some composite controls (like a combobox), wndThis might be NULL // because the subcontrol is not a wxWindow, but only the control itself @@ -956,6 +962,8 @@ void wxExit() wxApp::CleanUp(); } // end of wxExit +static bool gs_inYield = FALSE; + // // Yield to incoming messages // @@ -970,6 +978,8 @@ bool wxYield() // wxLog::Suspend(); + gs_inYield = TRUE; + // // We want to go back to the main message loop // if we see a WM_QUIT. (?) @@ -992,9 +1002,19 @@ bool wxYield() // Let the logs be flashed again // wxLog::Resume(); + gs_inYield = FALSE; return TRUE; } // end of wxYield +// Yield to incoming messages; but fail silently if recursion is detected. +bool wxYieldIfNeeded() +{ + if (gs_inYield) + return FALSE; + + return wxYield(); +} + wxIcon wxApp::GetStdIcon( int nWhich ) const