From 82c852f38732a005a1da72f4fb7fb402ecd71ec0 Mon Sep 17 00:00:00 2001 From: Harley Acheson Date: Sat, 19 Mar 2022 09:05:10 -0700 Subject: [PATCH] Fix D14173: Chinese IME Full Width Numbers Windows IME: Fix duplicated initial character when entering numbers while in Chinese full width character mode. See D14354 for more details. Differential Revision: https://developer.blender.org/D14354 Reviewed by Brecht Van Lommel --- intern/ghost/intern/GHOST_ImeWin32.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/intern/ghost/intern/GHOST_ImeWin32.cpp b/intern/ghost/intern/GHOST_ImeWin32.cpp index 702c10d377b..c3fcd7214ca 100644 --- a/intern/ghost/intern/GHOST_ImeWin32.cpp +++ b/intern/ghost/intern/GHOST_ImeWin32.cpp @@ -88,9 +88,14 @@ bool GHOST_ImeWin32::IsImeKeyEvent(char ascii, GHOST_TKey key) if (IsLanguage(IMELANG_JAPANESE) && (ascii >= ' ' && ascii <= '~')) { return true; } - else if (IsLanguage(IMELANG_CHINESE) && ascii && strchr("!\"$'(),.:;<>?[\\]^_`/", ascii) && - !(key == GHOST_kKeyNumpadPeriod)) { - return true; + if (IsLanguage(IMELANG_CHINESE)) { + if (ascii && strchr("!\"$'(),.:;<>?[\\]^_`/", ascii) && !(key == GHOST_kKeyNumpadPeriod)) { + return true; + } + if (conversion_modes_ & IME_CMODE_FULLSHAPE && (ascii >= '0' && ascii <= '9')) { + /* When in Full Width mode the number keys are also converted. */ + return true; + } } } return false;