]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/app.cpp
Suppress "Assignement in logical expression" type warnings for compilers that compain...
[wxWidgets.git] / src / os2 / app.cpp
index a8ccb45bae423137e9558e64e333ba76c72f9d06..7288a6e08cc54f8d8f7bcfa3b3f601f379b1278e 100644 (file)
@@ -27,8 +27,9 @@
     #include "wx/msgdlg.h"
     #include "wx/intl.h"
     #include "wx/dynarray.h"
-#   include "wx/wxchar.h"
-#   include "wx/icon.h"
+    #include "wx/wxchar.h"
+    #include "wx/icon.h"
+    #include "wx/timer.h"
 #endif
 
 #include "wx/log.h"
@@ -301,7 +302,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 +761,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 +963,8 @@ void wxExit()
     wxApp::CleanUp();
 } // end of wxExit
 
+static bool gs_inYield = FALSE;
+
 //
 // Yield to incoming messages
 //
@@ -970,6 +979,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 +1003,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