Module: wine Branch: master Commit: e5646191723fa4b5e4cb38187e1611a58ebc8695 URL: https://gitlab.winehq.org/wine/wine/-/commit/e5646191723fa4b5e4cb38187e1611a...
Author: Rémi Bernon rbernon@codeweavers.com Date: Thu Jun 15 14:56:35 2023 +0200
imm32: Use offsets instead of lengths to decide on sending updates.
The composition or result strings may be present, but with zero length. In which case we still want to send the messages, to indicate any change for instance whenever a character is deleted and strings become empty.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55055
---
dlls/imm32/ime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/imm32/ime.c b/dlls/imm32/ime.c index b5c4fc5b2e1..0470f3b6d6c 100644 --- a/dlls/imm32/ime.c +++ b/dlls/imm32/ime.c @@ -559,7 +559,7 @@ UINT WINAPI ImeToAsciiEx( UINT vkey, UINT vsc, BYTE *state, TRANSMSGLIST *msgs, TRANSMSG status_msg = {.message = ime_set_composition_status( himc, !!compstr->dwCompStrOffset )}; if (status_msg.message) msgs->TransMsg[count++] = status_msg;
- if (compstr->dwResultStrLen) + if (compstr->dwResultStrOffset) { const WCHAR *result = (WCHAR *)((BYTE *)compstr + compstr->dwResultStrOffset); TRANSMSG msg = {.message = WM_IME_COMPOSITION, .wParam = result[0], .lParam = GCS_RESULTSTR}; @@ -567,7 +567,7 @@ UINT WINAPI ImeToAsciiEx( UINT vkey, UINT vsc, BYTE *state, TRANSMSGLIST *msgs, msgs->TransMsg[count++] = msg; }
- if (compstr->dwCompStrLen) + if (compstr->dwCompStrOffset) { const WCHAR *comp = (WCHAR *)((BYTE *)compstr + compstr->dwCompStrOffset); TRANSMSG msg = {.message = WM_IME_COMPOSITION, .wParam = comp[0], .lParam = GCS_COMPSTR | GCS_CURSORPOS | GCS_DELTASTART};