Rémi Bernon (@rbernon) commented about dlls/win32u/imm.c:
+ comp_clause[1] = cursor_begin; + comp_clause[2] = cursor_end; + comp_clause[3] = comp_len; + break; + } +} + +static void set_comp_attr( BYTE *comp_attr, UINT comp_attr_len, INT cursor_begin, INT cursor_end ) +{ + if (cursor_begin == cursor_end) + memset( comp_attr, ATTR_INPUT, comp_attr_len ); + else + { + memset( comp_attr, ATTR_CONVERTED, comp_attr_len ); + memset( comp_attr + cursor_begin, ATTR_TARGET_CONVERTED, cursor_end - cursor_begin ); + } Do we need to keep ATTR_INPUT? It was being used from the early imm32 versions but it seems that ATTR_CONVERTED is overall a better fit?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7812#note_101019