]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/app.cpp
fixed missing Idle events
[wxWidgets.git] / src / msw / app.cpp
index 05cb68f704690380ba56664ec32d14f7f6b4ba4a..072874afb789216d9d3b850d0bde5832a1e0a5b6 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ===========================================================================
@@ -1140,24 +1140,22 @@ bool wxApp::SendIdleEvents()
 // Send idle event to window and all subwindows
 bool wxApp::SendIdleEvents(wxWindow* win)
 {
-    bool needMore = FALSE;
-
     wxIdleEvent event;
     event.SetEventObject(win);
     win->GetEventHandler()->ProcessEvent(event);
 
-    if (event.MoreRequested())
-        needMore = TRUE;
+    bool needMore = event.MoreRequested();
 
-    wxWindowList::Nodenode = win->GetChildren().GetFirst();
-    while (node)
+    wxWindowList::Node *node = win->GetChildren().GetFirst();
+    while ( node )
     {
-        wxWindowwin = node->GetData();
+        wxWindow *win = node->GetData();
         if (SendIdleEvents(win))
             needMore = TRUE;
 
         node = node->GetNext();
     }
+
     return needMore;
 }
 
@@ -1289,10 +1287,15 @@ int wxApp::GetComCtl32Version()
 
 void wxExit()
 {
-    wxLogError(_("Fatal error: exiting"));
-
-    wxApp::CleanUp();
-    exit(0);
+    if ( wxTheApp )
+    {
+        wxTheApp->ExitMainLoop();
+    }
+    else
+    {
+        // what else can we do?
+        exit(-1);
+    }
 }
 
 // Yield to incoming messages