diff options
author | Harley Acheson <harley.acheson@gmail.com> | 2022-03-19 19:05:10 +0300 |
---|---|---|
committer | Harley Acheson <harley.acheson@gmail.com> | 2022-03-19 19:05:10 +0300 |
commit | 82c852f38732a005a1da72f4fb7fb402ecd71ec0 (patch) | |
tree | e83a381f6a5959c47f213267701290f4569281ba /intern | |
parent | 8711483632823524019a6cc95575c5a4ba5aa831 (diff) |
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
Diffstat (limited to 'intern')
-rw-r--r-- | intern/ghost/intern/GHOST_ImeWin32.cpp | 11 |
1 files 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; |