X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c3e299e08be35d0f88e6e86c8cee97f07ced3ca..721a4a08bce5245dd748a9f4c64c5d25a02e8155:/src/gtk/app.cpp?ds=sidebyside diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 7d15b6e1b3..bb01f6b872 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -194,7 +194,18 @@ gint wxapp_pending_callback( gpointer WXUNUSED(data) ) gint wxapp_idle_callback( gpointer WXUNUSED(data) ) { - if (!wxTheApp) return TRUE; + if (!wxTheApp) + return TRUE; + +#ifdef __WXDEBUG__ + if ( wxTheApp->IsInAssert() ) + { + // don't generate the idle events while the assert modal dialog is + // shown, this completely confuses the apps which don't expect to be + // reentered from some safely-looking functions + return FALSE; + } +#endif // __WXDEBUG__ // when getting called from GDK's time-out handler // we are no longer within GDK's grab on the GUI @@ -309,10 +320,10 @@ END_EVENT_TABLE() wxApp::wxApp() { - wxTheApp = this; - - m_topWindow = (wxWindow *) NULL; - m_exitOnFrameDelete = TRUE; + m_initialized = FALSE; +#ifdef __WXDEBUG__ + m_isInAssert = FALSE; +#endif // __WXDEBUG__ m_idleTag = 0; wxapp_install_idle_handler(); @@ -323,8 +334,6 @@ wxApp::wxApp() #endif m_colorCube = (unsigned char*) NULL; - - m_useBestVisual = FALSE; } wxApp::~wxApp() @@ -340,6 +349,9 @@ wxApp::~wxApp() bool wxApp::OnInitGui() { + if ( !wxAppBase::OnInitGui() ) + return FALSE; + GdkVisual *visual = gdk_visual_get_system(); /* on some machines, the default visual is just 256 colours, so @@ -854,3 +866,17 @@ wxApp::GetStdIcon(int which) const return wxIcon(error_xpm); } } + +#ifdef __WXDEBUG__ + +void wxApp::OnAssert(const wxChar *file, int line, const wxChar *msg) +{ + m_isInAssert = TRUE; + + wxAppBase::OnAssert(file, line, msg); + + m_isInAssert = FALSE; +} + +#endif // __WXDEBUG__ +