]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/app.cpp
Fixed the drawing of the HRules so they don't try to iterate over all
[wxWidgets.git] / src / gtk / app.cpp
index bb01f6b87295551dd9ed0f2f618766003a1f2fbc..8502f2a279105cffa2b66fbd0fb0c1bf89d25247 100644 (file)
@@ -108,13 +108,13 @@ bool wxYield()
         g_isIdle = TRUE;
     }
 
-    while (gtk_events_pending())
-        gtk_main_iteration();
-
     // disable log flushing from here because a call to wxYield() shouldn't
     // normally result in message boxes popping up &c
     wxLog::Suspend();
 
+    while (gtk_events_pending())
+        gtk_main_iteration();
+
     /* it's necessary to call ProcessIdle() to update the frames sizes which
        might have been changed (it also will update other things set from
        OnUpdateUI() which is a nice (and desired) side effect) */
@@ -198,12 +198,12 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) )
         return TRUE;
 
 #ifdef __WXDEBUG__
+    // don't generate the idle events while the assert modal dialog is shown,
+    // this completely confuses the apps which don't expect to be reentered
+    // from some safely-looking functions
     if ( wxTheApp->IsInAssert() )
     {
-        // don't generate the idle events while the assert modal dialog is
-        // shown, this completely confuses the apps which don't expect to be
-        // reentered from some safely-looking functions
-        return FALSE;
+        return TRUE;
     }
 #endif // __WXDEBUG__
 
@@ -220,8 +220,9 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) )
     g_isIdle = TRUE;
     wxTheApp->m_idleTag = 0;
 
-    // Sent idle event to all who request them
-    while (wxTheApp->ProcessIdle()) { }
+    // Sent idle event to all who request them as long as they do
+    while (wxTheApp->ProcessIdle())
+        ;
 
     // Release lock again
     gdk_threads_leave();