X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/09a094552238443f82cb12a105bf88f3ca5b83a3..2e61f6814126617f286fad69f614cccd86db6412:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 1aee54439b..fa47355e8f 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -209,7 +209,7 @@ static gint wxapp_idle_callback( gpointer WXUNUSED(data) ) // Release lock again gdk_threads_leave(); - + { // If another idle source was added, remove it #if wxUSE_THREADS @@ -403,7 +403,8 @@ GdkVisual *wxApp::GetGdkVisual() bool wxApp::Initialize(int& argc, wxChar **argv) { - bool init_result; + if ( !wxAppBase::Initialize(argc, argv) ) + return false; #if wxUSE_THREADS if (!g_thread_supported()) @@ -413,8 +414,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv) g_main_context_set_poll_func(NULL, wxapp_poll_func); #endif // wxUSE_THREADS - gtk_set_locale(); - // We should have the wxUSE_WCHAR_T test on the _outside_ #if wxUSE_WCHAR_T // gtk+ 2.0 supports Unicode through UTF-8 strings @@ -447,10 +446,19 @@ bool wxApp::Initialize(int& argc, wxChar **argv) #else if (encName.empty()) encName = _T("UTF-8"); + + // if wxUSE_INTL==0 it probably indicates that only "C" locale is supported + // by the program anyhow so prevent GTK+ from calling setlocale(LC_ALL, "") + // from gtk_init_check() as it does by default + gtk_disable_setlocale(); + #endif // wxUSE_INTL static wxConvBrokenFileNames fileconv(encName); wxConvFileName = &fileconv; + + bool init_result; + #if wxUSE_UNICODE // gtk_init() wants UTF-8, not wchar_t, so convert int i; @@ -478,7 +486,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) { while ( strcmp(wxConvUTF8.cWX2MB(argv[i]), argvGTK[i]) != 0 ) { - memmove(argv + i, argv + i + 1, argc - i); + memmove(argv + i, argv + i + 1, (argc - i)*sizeof(*argv)); } } @@ -507,13 +515,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv) // we can not enter threads before gtk_init is done gdk_threads_enter(); - if ( !wxAppBase::Initialize(argc, argv) ) - { - gdk_threads_leave(); - - return false; - } - wxSetDetectableAutoRepeat( true ); #if wxUSE_INTL