X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a48b920f65ceed7e768705a9c7cf96db29d2a29..a002ae4e50a0dec9f0090ef8677488d04b0e427a:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index e887428655..3754531c01 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -199,6 +199,10 @@ wxApp::~wxApp() bool wxApp::SetNativeTheme(const wxString& theme) { +#ifdef __WXGTK3__ + wxUnusedVar(theme); + return false; +#else wxString path; path = gtk_rc_get_theme_dir(); path += "/"; @@ -219,6 +223,7 @@ bool wxApp::SetNativeTheme(const wxString& theme) gtk_rc_reparse_all_for_settings(gtk_settings_get_default(), TRUE); return true; +#endif } bool wxApp::OnInitGui() @@ -304,9 +309,9 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) if (encName.CmpNoCase(wxT("@locale")) == 0) encName.clear(); encName.MakeUpper(); -#if wxUSE_INTL if (encName.empty()) { +#if wxUSE_INTL // (2) if a non default locale is set, assume that the user wants his // filenames in this locale too encName = wxLocale::GetSystemEncodingName().Upper(); @@ -325,22 +330,14 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) encName.clear(); } } +#endif // wxUSE_INTL // (3) finally use UTF-8 by default if ( encName.empty() ) encName = wxT("UTF-8"); wxSetEnv(wxT("G_FILENAME_ENCODING"), encName); } -#else - if (encName.empty()) - encName = wxT("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; #endif // __UNIX__ @@ -361,13 +358,17 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) int argcGTK = argc_; + // Prevent gtk_init_check() from changing the locale automatically for + // consistency with the other ports that don't do it. If necessary, + // wxApp::SetCLocale() may be explicitly called. + gtk_disable_setlocale(); + #ifdef __WXGPE__ init_result = true; // is there a _check() version of this? gpe_application_init( &argcGTK, &argvGTK ); #else init_result = gtk_init_check( &argcGTK, &argvGTK ) != 0; #endif - wxUpdateLocaleIsUtf8(); if ( argcGTK != argc_ ) { @@ -528,6 +529,25 @@ void wxGUIAppTraits::MutexGuiLeave() } #endif // wxUSE_THREADS +/* static */ +bool wxApp::GTKIsUsingGlobalMenu() +{ + static int s_isUsingGlobalMenu = -1; + if ( s_isUsingGlobalMenu == -1 ) + { + // Currently we just check for this environment variable because this + // is how support for the global menu is implemented under Ubuntu. + // + // If we ever get false positives, we could also check for + // XDG_CURRENT_DESKTOP env var being set to "Unity". + wxString proxy; + s_isUsingGlobalMenu = wxGetEnv("UBUNTU_MENUPROXY", &proxy) && + !proxy.empty() && proxy != "0"; + } + + return s_isUsingGlobalMenu == 1; +} + #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 // Maemo-specific method: get the main program object HildonProgram *wxApp::GetHildonProgram()