]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/app.cpp
added xpm
[wxWidgets.git] / src / os2 / app.cpp
index 35f7a8481cca145ce0709b01431eb97d1d172a16..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)
                            ))
     {
@@ -962,6 +963,8 @@ void wxExit()
     wxApp::CleanUp();
 } // end of wxExit
 
+static bool gs_inYield = FALSE;
+
 //
 // Yield to incoming messages
 //
@@ -976,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. (?)
@@ -998,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