diff --git a/modules/juce_gui_basics/native/juce_linux_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_Windowing.cpp index b0357306d7..5ab5c4d25a 100644 --- a/modules/juce_gui_basics/native/juce_linux_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_linux_Windowing.cpp @@ -1345,10 +1345,12 @@ public: ScopedXLock xlock; updateKeyStates (keyEvent.keycode, true); - const char* oldLocale = ::setlocale (LC_ALL, 0); + String oldLocale (::setlocale (LC_ALL, 0)); ::setlocale (LC_ALL, ""); XLookupString (&keyEvent, utf8, sizeof (utf8), &sym, 0); - ::setlocale (LC_ALL, oldLocale); + + if (oldLocale.isNotEmpty()) + ::setlocale (LC_ALL, oldLocale.toRawUTF8()); unicodeChar = *CharPointer_UTF8 (utf8); keyCode = (int) unicodeChar;