]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/app.cpp
no more _ftime instead of ftime
[wxWidgets.git] / src / gtk1 / app.cpp
index fce981832b01e007c4aaabcf48889d4bebce3bdc..b89d77cd5c779f47bfdfa004fb4b4eecaafcc484 100644 (file)
@@ -93,17 +93,25 @@ bool wxYield()
     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) */
-    while (wxTheApp->ProcessIdle()) { }
-
     if (has_idle)
     {
         /* re-add idle handler */
         wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
     }
 
+    // disable log flushing from here because a call to wxYield() shouldn't
+    // normally result in message boxes popping up &c
+    wxLog::Suspend();
+
+    /* 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) */
+    while (wxTheApp->ProcessIdle())
+        ;
+
+    // let the logs be flashed again
+    wxLog::Resume();
+
     return TRUE;
 }
 
@@ -118,9 +126,9 @@ void wxWakeUpIdle()
         wxMutexGuiEnter();
 #endif
 
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
-    
+
 #if wxUSE_THREADS
     if (!wxThread::IsMain())
         wxMutexGuiLeave();
@@ -204,7 +212,7 @@ gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
 
     // unblock other threads wishing to do some GUI things
     wxMutexGuiLeave();
-    
+
     g_mainThreadLocked = TRUE;
 
     // wake up other threads
@@ -219,7 +227,7 @@ gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
 
     // release lock again
     gdk_threads_leave();
-    
+
     return TRUE;
 }
 
@@ -250,7 +258,7 @@ wxApp::wxApp()
 #endif
 
     m_colorCube = (unsigned char*) NULL;
-    
+
     m_useBestVisual = FALSE;
 }
 
@@ -272,7 +280,7 @@ bool wxApp::OnInitGui()
     /* on some machines, the default visual is just 256 colours, so
        we make sure we get the best. this can sometimes be wasteful,
        of course, but what do these guys pay $30.000 for? */
-       
+
     if ((gdk_visual_get_best() != gdk_visual_get_system()) &&
         (m_useBestVisual))
     {
@@ -356,11 +364,11 @@ bool wxApp::ProcessIdle()
 void wxApp::OnIdle( wxIdleEvent &event )
 {
     static bool s_inOnIdle = FALSE;
-    
+
     /* Avoid recursion (via ProcessEvent default case) */
     if (s_inOnIdle)
         return;
-    
+
     s_inOnIdle = TRUE;
 
     /* Resend in the main thread events which have been prepared in other
@@ -380,9 +388,7 @@ void wxApp::OnIdle( wxIdleEvent &event )
 
     /* flush the logged messages if any */
 #if wxUSE_LOG
-    wxLog *log = wxLog::GetActiveTarget();
-    if (log != NULL && log->HasPendingMessages())
-        log->Flush();
+    wxLog::FlushActive();
 #endif // wxUSE_LOG
 }
 
@@ -512,7 +518,7 @@ void wxApp::CleanUp()
 
     if (wxTheColourDatabase)
         delete wxTheColourDatabase;
-        
+
     wxTheColourDatabase = (wxColourDatabase*) NULL;
 
     wxDeleteStockObjects();
@@ -565,16 +571,16 @@ int wxEntry( int argc, char *argv[] )
     /* GTK 1.2 up to version 1.2.3 has broken threads */
     if ((gtk_major_version == 1) &&
         (gtk_minor_version == 2) &&
-           (gtk_micro_version < 4))
+        (gtk_micro_version < 4))
     {
-        printf( "wxWindows warning: Disabled GUI threading due to outdated GTK version\n" );
+        printf( "wxWindows warning: GUI threading disabled due to outdated GTK version\n" );
     }
     else
     {
         g_thread_init(NULL);
     }
 #endif
-    
+
     gtk_set_locale();
 
 #if wxUSE_WCHAR_T
@@ -613,7 +619,7 @@ int wxEntry( int argc, char *argv[] )
 #if wxUSE_UNICODE
     wxTheApp->argv = new wxChar*[argc+1];
     int mb_argc = 0;
-    while (mb_argc < argc) 
+    while (mb_argc < argc)
     {
         wxTheApp->argv[mb_argc] = wxStrdup(wxConvLibc.cMB2WX(argv[mb_argc]));
         mb_argc++;
@@ -654,7 +660,7 @@ int wxEntry( int argc, char *argv[] )
 
         if (wxTheApp->Initialized())
         {
-            retValue = wxTheApp->OnRun();
+            wxTheApp->OnRun();
 
             wxWindow *topWindow = wxTheApp->GetTopWindow();
             if (topWindow)
@@ -672,7 +678,8 @@ int wxEntry( int argc, char *argv[] )
                     wxTheApp->SetTopWindow( (wxWindow*) NULL );
                 }
             }
-            wxTheApp->OnExit();
+
+            retValue = wxTheApp->OnExit();
         }
     }