X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31f4ed4aa313e7ed804f3e161ac7637dfba70350..7d6a4d96961eac84d05db8bb24c64d39003f6e54:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 72dd08db41..823da625a2 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -26,8 +26,8 @@ #include #endif -#include "wx/gtk/private.h" #include "wx/apptrait.h" +#include "wx/fontmap.h" #if wxUSE_LIBHILDON #include @@ -37,7 +37,8 @@ #include #endif // wxUSE_LIBHILDON2 -#include +#include +#include "wx/gtk/private.h" //----------------------------------------------------------------------------- // link GnomeVFS @@ -85,7 +86,7 @@ static void wx_add_idle_hooks() } } // "size_allocate" hook - // Needed to match the behavior of the old idle system, + // Needed to match the behaviour of the old idle system, // but probably not necessary. { static bool hook_installed; @@ -124,7 +125,7 @@ bool wxApp::DoIdle() #if wxDEBUG_LEVEL // don't generate the idle events while the assert modal dialog is shown, - // this matches the behavior of wxMSW + // this matches the behaviour of wxMSW if (m_isInAssert) return false; #endif @@ -228,6 +229,7 @@ bool wxApp::OnInitGui() if ( !wxAppBase::OnInitGui() ) return false; +#ifndef __WXGTK3__ // if this is a wxGLApp (derived from wxApp), and we've already // chosen a specific visual, then derive the GdkVisual from that if ( GetXVisualInfo() ) @@ -265,6 +267,7 @@ bool wxApp::OnInitGui() } } } +#endif #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 if ( !GetHildonProgram() ) @@ -294,6 +297,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) // gtk+ 2.0 supports Unicode through UTF-8 strings wxConvCurrent = &wxConvUTF8; +#ifdef __UNIX__ // decide which conversion to use for the file names // (1) this variable exists for the sole purpose of specifying the encoding @@ -309,8 +313,24 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) // (2) if a non default locale is set, assume that the user wants his // filenames in this locale too encName = wxLocale::GetSystemEncodingName().Upper(); + + // But don't consider ASCII in this case. + if ( !encName.empty() ) + { +#if wxUSE_FONTMAP + wxFontEncoding enc = wxFontMapperBase::GetEncodingFromName(encName); + if ( enc == wxFONTENCODING_DEFAULT ) +#else // !wxUSE_FONTMAP + if ( encName == wxT("US-ASCII") ) +#endif // wxUSE_FONTMAP/!wxUSE_FONTMAP + { + // This means US-ASCII when returned from GetEncodingFromName(). + encName.clear(); + } + } + // (3) finally use UTF-8 by default - if (encName.empty() || encName == wxT("US-ASCII")) + if ( encName.empty() ) encName = wxT("UTF-8"); wxSetEnv(wxT("G_FILENAME_ENCODING"), encName); } @@ -326,6 +346,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) #endif // wxUSE_INTL static wxConvBrokenFileNames fileconv(encName); wxConvFileName = &fileconv; +#endif // __UNIX__ bool init_result; @@ -347,7 +368,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) init_result = true; // is there a _check() version of this? gpe_application_init( &argcGTK, &argvGTK ); #else - init_result = gtk_init_check( &argcGTK, &argvGTK ); + init_result = gtk_init_check( &argcGTK, &argvGTK ) != 0; #endif wxUpdateLocaleIsUtf8(); @@ -422,7 +443,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) return false; } - // we can not enter threads before gtk_init is done + // we cannot enter threads before gtk_init is done gdk_threads_enter(); #if wxUSE_INTL @@ -513,8 +534,8 @@ void wxGUIAppTraits::MutexGuiLeave() #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 // Maemo-specific method: get the main program object HildonProgram *wxApp::GetHildonProgram() -{ - return hildon_program_get_instance(); +{ + return hildon_program_get_instance(); } - + #endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2