forked from bartvdbraak/blender
Only enable IME for supported translation contexts
For me, weird characters are drawn if IME is enabled but translation is not set to a supported language. Could become an utility function if needed later.
This commit is contained in:
parent
065e5896c4
commit
c8f95cbb60
@ -2446,6 +2446,18 @@ static bool ui_textedit_copypaste(uiBut *but, uiHandleButtonData *data, const in
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WITH_INPUT_IME
|
#ifdef WITH_INPUT_IME
|
||||||
|
/* test if the translation context allows IME input - used to
|
||||||
|
* avoid weird character drawing if IME inputs non-ascii chars */
|
||||||
|
static bool ui_ime_is_lang_supported(void)
|
||||||
|
{
|
||||||
|
const char *uilng = BLF_lang_get();
|
||||||
|
const bool is_lang_supported = STREQ(uilng, "zh_CN") ||
|
||||||
|
STREQ(uilng, "zh_TW") ||
|
||||||
|
STREQ(uilng, "ja_JP");
|
||||||
|
|
||||||
|
return ((U.transopts & USER_DOTRANSLATE) && is_lang_supported);
|
||||||
|
}
|
||||||
|
|
||||||
/* enable ime, and set up uibut ime data */
|
/* enable ime, and set up uibut ime data */
|
||||||
static void ui_textedit_ime_begin(wmWindow *win, uiBut *UNUSED(but))
|
static void ui_textedit_ime_begin(wmWindow *win, uiBut *UNUSED(but))
|
||||||
{
|
{
|
||||||
@ -2550,7 +2562,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data)
|
|||||||
WM_cursor_modal_set(win, BC_TEXTEDITCURSOR);
|
WM_cursor_modal_set(win, BC_TEXTEDITCURSOR);
|
||||||
|
|
||||||
#ifdef WITH_INPUT_IME
|
#ifdef WITH_INPUT_IME
|
||||||
if (is_num_but == false) {
|
if (is_num_but == false && ui_ime_is_lang_supported()) {
|
||||||
ui_textedit_ime_begin(win, but);
|
ui_textedit_ime_begin(win, but);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user