#endif
void DeletePendingObjects();
+ /// This can be used to suppress the generation of Idle events.
+ inline void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; }
+ inline bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; }
+
bool m_initialized;
bool m_exitOnFrameDelete;
bool m_wantDebugOutput;
wxString m_className;
static wxAppInitializerFunction m_appInitFn;
-
+ private:
+ /// Set to TRUE while we are in wxYield().
+ bool m_suppressIdleEvents;
DECLARE_EVENT_TABLE()
};
#endif
void DeletePendingObjects();
+ /// This can be used to suppress the generation of Idle events.
+ inline void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; }
+ inline bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; }
+
bool m_initialized;
bool m_exitOnFrameDelete;
bool m_wantDebugOutput;
wxString m_className;
static wxAppInitializerFunction m_appInitFn;
-
+ private:
+ /// Set to TRUE while we are in wxYield().
+ bool m_suppressIdleEvents;
DECLARE_EVENT_TABLE()
};
gtk_main_quit();
}
+// forward decl
+gint wxapp_idle_callback( gpointer WXUNUSED(data) );
+
bool wxYield()
{
// it's necessary to call ProcessIdle() to update the frames sizes which
win->OnInternalIdle();
}
- while (gtk_events_pending() > 0)
+ // We need to temporarily remove idle callbacks or the loop will
+ // never finish.
+ gtk_idle_remove( wxTheApp->m_idleTag );
+
+ while (gtk_events_pending())
gtk_main_iteration();
+ wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
return TRUE;
}
gtk_main_quit();
}
+// forward decl
+gint wxapp_idle_callback( gpointer WXUNUSED(data) );
+
bool wxYield()
{
// it's necessary to call ProcessIdle() to update the frames sizes which
win->OnInternalIdle();
}
- while (gtk_events_pending() > 0)
+ // We need to temporarily remove idle callbacks or the loop will
+ // never finish.
+ gtk_idle_remove( wxTheApp->m_idleTag );
+
+ while (gtk_events_pending())
gtk_main_iteration();
+ wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
return TRUE;
}