From eaee93101195de0dc231c4e792dc2ee2f5c95542 Mon Sep 17 00:00:00 2001 From: Scott Talbert Date: Sat, 26 Jan 2019 20:49:16 -0500 Subject: [PATCH] Fix sending of EVT_KEY_DOWN on wxGTK for non-ASCII characters Instead of returning early if the keycode is invalid, try setting the unicode character first, and if neither are valid, return. Fixes #18054 --- src/gtk/window.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 8e15376cff..64de6656eb 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -1071,14 +1071,10 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event, wxLogTrace(TRACE_KEYS, wxT("\t-> wxKeyCode %ld"), key_code); - // sending unknown key events doesn't really make sense - if ( !key_code ) - return false; - event.m_keyCode = key_code; #if wxUSE_UNICODE - event.m_uniChar = gdk_keyval_to_unicode(key_code); + event.m_uniChar = gdk_keyval_to_unicode(key_code ? key_code : gdk_event->keyval); if ( !event.m_uniChar && event.m_keyCode <= WXK_DELETE ) { // Set Unicode key code to the ASCII equivalent for compatibility. E.g. @@ -1088,6 +1084,10 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event, } #endif // wxUSE_UNICODE + // sending unknown key events doesn't really make sense + if ( !key_code && !event.m_uniChar ) + return false; + // now fill all the other fields wxFillOtherKeyEventFields(event, win, gdk_event);