Module: wine Branch: master Commit: 6baf1198ba7d8b58910db8607c755ff924222e57 URL: https://gitlab.winehq.org/wine/wine/-/commit/6baf1198ba7d8b58910db8607c755ff...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Fri Aug 12 11:32:54 2022 +0800
user32/edit: Implement EM_SETIMESTATUS.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com
---
dlls/user32/edit.c | 10 +++++++++- dlls/user32/tests/msg.c | 10 ---------- 2 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index 496d5e7287f..7bfe18e952e 100644 --- a/dlls/user32/edit.c +++ b/dlls/user32/edit.c @@ -21,7 +21,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * * TODO: - * - EM_GETIMESTATUS, EM_SETIMESTATUS + * - EM_GETIMESTATUS * - EN_ALIGN_LTR_EC * - EN_ALIGN_RTL_EC * - ES_OEMCONVERT @@ -138,6 +138,7 @@ typedef struct */ UINT composition_len; /* length of composition, 0 == no composition */ int composition_start; /* the character position for the composition */ + UINT ime_status; /* IME status flag */ /* * Uniscribe Data */ @@ -4928,6 +4929,13 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B result = EDIT_EM_CharFromPos(es, (short)LOWORD(lParam), (short)HIWORD(lParam)); break;
+ case EM_SETIMESTATUS: + if (wParam == EMSIS_COMPOSITIONSTRING) + es->ime_status = lParam & 0xFFFF; + + result = 1; + break; + /* End of the EM_ messages which were in numerical order; what order * are these in? vaguely alphabetical? */ diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 42026b7a889..dcfeb329abc 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -12199,21 +12199,18 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) /* Note that EM_SETIMESTATUS always return 1, which is contrary to what MSDN says about * returning the previous LPARAM value */ lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); todo_wine ok(lr == EIMES_GETCOMPSTRATONCE, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_CANCELCOMPSTRINFOCUS); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); todo_wine ok(lr == EIMES_CANCELCOMPSTRINFOCUS, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_COMPLETECOMPSTRKILLFOCUS); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); todo_wine @@ -12221,7 +12218,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE | EIMES_CANCELCOMPSTRINFOCUS | EIMES_COMPLETECOMPSTRKILLFOCUS); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); todo_wine @@ -12229,7 +12225,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr); @@ -12244,26 +12239,22 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, 0, EIMES_GETCOMPSTRATONCE); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING + 1, EIMES_GETCOMPSTRATONCE); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0xFFFFFFFF); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); todo_wine ok(lr == 0xFFFF, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr); @@ -12291,7 +12282,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
/* Test IME messages when EIMES_GETCOMPSTRATONCE is set */ lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE); - todo_wine ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); todo_wine