]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/app.cpp
don't readd items in SetImageList() after changing the control mode, they are suppose...
[wxWidgets.git] / src / gtk / app.cpp
index e982ec4ab0bf41859b2493ed984aeb363589e09b..c349227bce2dc8db8cc1a231cd6f00415cfaceee 100644 (file)
     wxFORCE_LINK_MODULE(gnome_vfs)
 #endif
 
-//-----------------------------------------------------------------------------
-// global data
-//-----------------------------------------------------------------------------
-
-static GtkWidget *gs_RootWindow = NULL;
-
-//-----------------------------------------------------------------------------
-// wxYield
-//-----------------------------------------------------------------------------
-
-bool wxApp::Yield(bool onlyIfNeeded)
-{
-    if ( m_isInsideYield )
-    {
-        if ( !onlyIfNeeded )
-        {
-            wxFAIL_MSG( wxT("wxYield called recursively" ) );
-        }
-
-        return false;
-    }
-
-#if wxUSE_THREADS
-    if ( !wxThread::IsMain() )
-    {
-        // can't call gtk_main_iteration() from other threads like this
-        return true;
-    }
-#endif // wxUSE_THREADS
-
-    m_isInsideYield = true;
-
-#if wxUSE_LOG
-    // disable log flushing from here because a call to wxYield() shouldn't
-    // normally result in message boxes popping up &c
-    wxLog::Suspend();
-#endif
-
-    while (EventsPending())
-        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). But we
-    // call ProcessIdle() only once since this is not meant for longish
-    // background jobs (controlled by wxIdleEvent::RequestMore() and the
-    // return value of Processidle().
-    ProcessIdle();
-
-#if wxUSE_LOG
-    // let the logs be flashed again
-    wxLog::Resume();
-#endif
-
-    m_isInsideYield = false;
-
-    return true;
-}
-
 //-----------------------------------------------------------------------------
 // local functions
 //-----------------------------------------------------------------------------
@@ -174,7 +115,8 @@ bool wxApp::DoIdle()
         id_save = m_idleSourceId;
         m_idleSourceId = 0;
         wx_add_idle_hooks();
-#ifdef __WXDEBUG__
+
+#if wxDEBUG_LEVEL
         // don't generate the idle events while the assert modal dialog is shown,
         // this matches the behavior of wxMSW
         if (m_isInAssert)
@@ -222,12 +164,14 @@ bool wxApp::DoIdle()
 
 GtkWidget* wxGetRootWindow()
 {
-    if (gs_RootWindow == NULL)
+    static GtkWidget *s_RootWindow = NULL;
+
+    if (s_RootWindow == NULL)
     {
-        gs_RootWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
-        gtk_widget_realize( gs_RootWindow );
+        s_RootWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
+        gtk_widget_realize( s_RootWindow );
     }
-    return gs_RootWindow;
+    return s_RootWindow;
 }
 
 //-----------------------------------------------------------------------------
@@ -238,9 +182,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxApp,wxEvtHandler)
 
 wxApp::wxApp()
 {
-#ifdef __WXDEBUG__
     m_isInAssert = false;
-#endif // __WXDEBUG__
+
 #if wxUSE_THREADS
     m_idleMutex = NULL;
 #endif
@@ -555,25 +498,30 @@ bool wxApp::EventsPending()
     return gtk_events_pending() != 0;
 }
 
-#ifdef __WXDEBUG__
-
 void wxApp::OnAssertFailure(const wxChar *file,
                             int line,
                             const wxChar* func,
                             const wxChar* cond,
                             const wxChar *msg)
 {
-
+    // there is no need to do anything if asserts are disabled in this build
+    // anyhow
+#if wxDEBUG_LEVEL
     // block wx idle events while assert dialog is showing
     m_isInAssert = true;
 
     wxAppBase::OnAssertFailure(file, line, func, cond, msg);
 
     m_isInAssert = false;
+#else // !wxDEBUG_LEVEL
+    wxUnusedVar(file);
+    wxUnusedVar(line);
+    wxUnusedVar(func);
+    wxUnusedVar(cond);
+    wxUnusedVar(msg);
+#endif // wxDEBUG_LEVEL/!wxDEBUG_LEVEL
 }
 
-#endif // __WXDEBUG__
-
 #if wxUSE_THREADS
 void wxGUIAppTraits::MutexGuiEnter()
 {