+ {
+ guint idleID_save;
+ {
+ // Allow another idle source to be added while this one is busy.
+ // Needed if an idle event handler runs a new event loop,
+ // for example by showing a dialog.
+#if wxUSE_THREADS
+ wxMutexLocker lock(gs_idleTagsMutex);
+#endif
+ idleID_save = wxTheApp->m_idleTag;
+ wxTheApp->m_idleTag = 0;
+ g_isIdle = true;
+ wxAddEmissionHook();
+ }