update for 5.3.6
This is different from what I have learned your instruction since. It is OK to close this thread.
Since the entire composition is a single target, the caret will be at the end with the onlyTarget branch but at the start if the patch is applied and the onlyTarget code removed. That is not true. https://youtu.be/Gc_jzPzVoyo Pressing reconvert (VK_HANJA) before the first character, EscapeHanja is called which selects the next character and shows the candidate box. That is just conversion, not reconversion. but this is not needed more discussion any more, unless the ime caret positon is respecte...
GCS_CURSORPOS is primary. but CS_NOMOVECARET is secondary. it really breaks the rule to ignore GCS_CURSORPOS.
the start of compStr by CS_NOMOVECARET. the start of the last character by no CS_NOMOVECARET. the position pointed by IME regardless of CS_NOMOVECARET. IME knows at which ime caret should be located. so for one caracter input, it must be the start of one compStr by CS_NOMOVECARET. for clause input, it must be the start of the last character by no CS_NOMOVECARET. But for korean ime, current code implement as this. If (CS_NOMOVECARET) { // do nothing } else { imeEndToImeCaretU16 += imc.GetImeCaretPos();...
The reason why I want reverting is exactly for There are a wide variety of IMEs and some may produce these cases now or with future updates. It is desirable to implement ime codes as simple as possible. We do not use GCS_COMPCLAUSE for ime attributes. We do not CS_INSERTCHAR to insert characters.
from https://github.com/ONLYOFFICE/desktop-sdk/blob/master/ChromiumBasedEditors/lib/src/cef/windows/tests/cefclient/browser/osr_ime_handler_win.cc ..... // **Retrieve the selection range information**. If CS_NOMOVECARET is specified // it means the cursor should not be moved and we therefore place the caret at // the beginning of the composition string. **Otherwise we should honour the // GCS_CURSORPOS value if it's available.** // TODO(suzhe): Due to a bug in WebKit we currently can't use selection...
from https://github.com/ONLYOFFICE/desktop-sdk/blob/master/ChromiumBasedEditors/lib/src/cef/windows/tests/cefclient/browser/osr_ime_handler_win.cc ..... // Retrieve the selection range information. If CS_NOMOVECARET is specified // it means the cursor should not be moved and we therefore place the caret at // the beginning of the composition string. Otherwise we should honour the // GCS_CURSORPOS value if it's available. // TODO(suzhe): Due to a bug in WebKit we currently can't use selection range...