X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d5f3e1ebf5e10572bd5d388c83e0f8e387cbe423..be6577566570876c0c00621ff98c786d7c6de80e:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 0d8189fd7c..1bf855421b 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -366,7 +366,10 @@ static gint wxapp_poll_func( GPollFD *ufds, guint nfds, gint timeout ) void wxapp_install_idle_handler() { - wxASSERT_MSG( wxThread::IsMain() || gs_WakeUpIdle, wxT("attempt to install idle handler from widget callback in child thread (should be exclusively from wxWakeUpIdle)") ); + // GD: this assert is raised when using the thread sample (which works) + // so the test is probably not so easy. Can widget callbacks be + // triggered from child threads and, if so, for which widgets? + // wxASSERT_MSG( wxThread::IsMain() || gs_WakeUpIdle, wxT("attempt to install idle handler from widget callback in child thread (should be exclusively from wxWakeUpIdle)") ); wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") ); @@ -800,10 +803,11 @@ int wxEntryStart( int& argc, char *argv[] ) if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL; #endif - gdk_threads_enter(); - gtk_init( &argc, &argv ); + /* we can not enter threads before gtk_init is done */ + gdk_threads_enter(); + wxSetDetectableAutoRepeat( TRUE ); if (!wxApp::Initialize())