From d8a075dc9130ae1f0b7d85e18ea2ce1e8d63e536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 31 Jan 2024 10:51:33 +0100 Subject: [PATCH] imm32/tests: Fix some spurious failures with Windows ko_KR IME. Still fails spuriously from time to time as the IME sometimes doesn't kick in, but hopefully less often. --- dlls/imm32/tests/imm32.c | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c index 5cf7b357417..7131bc2f6a5 100644 --- a/dlls/imm32/tests/imm32.c +++ b/dlls/imm32/tests/imm32.c @@ -7092,11 +7092,11 @@ static void test_ImmTranslateMessage( BOOL kbd_char_first ) { { .hkl = expect_ime, .himc = 0/*himc*/, .func = IME_PROCESS_KEY, - .process_key = {.vkey = 'Q', .lparam = MAKELONG(1, 0x10)}, + .process_key = {.vkey = VK_RETURN, .lparam = MAKELONG(1, 0x1c)}, }, { .hkl = expect_ime, .himc = 0/*himc*/, .func = IME_TO_ASCII_EX, - .to_ascii_ex = {.vkey = kbd_char_first ? MAKELONG('Q', 'q') : 'Q', .vsc = 0x10}, + .to_ascii_ex = {.vkey = kbd_char_first ? MAKELONG(VK_RETURN, VK_RETURN) : VK_RETURN, .vsc = 0x1c}, }, {0}, }; @@ -7104,11 +7104,11 @@ static void test_ImmTranslateMessage( BOOL kbd_char_first ) { { .hkl = expect_ime, .himc = 0/*himc*/, .func = IME_PROCESS_KEY, - .process_key = {.vkey = 'Q', .lparam = MAKELONG(1, 0xc010)}, + .process_key = {.vkey = VK_RETURN, .lparam = MAKELONG(1, 0xc01c)}, }, { .hkl = expect_ime, .himc = 0/*himc*/, .func = IME_TO_ASCII_EX, - .to_ascii_ex = {.vkey = 'Q', .vsc = 0xc010}, + .to_ascii_ex = {.vkey = VK_RETURN, .vsc = 0xc01c}, }, {0}, }; @@ -7240,12 +7240,12 @@ static void test_ImmTranslateMessage( BOOL kbd_char_first ) ignore_WM_IME_NOTIFY = TRUE; ignore_IME_NOTIFY = TRUE; - keybd_event( 'Q', 0x10, 0, 0 ); + keybd_event( VK_RETURN, 0x1c, 0, 0 ); flush_events(); process_messages_( hwnd ); ok_seq( key_down_seq ); - keybd_event( 'Q', 0x10, KEYEVENTF_KEYUP, 0 ); + keybd_event( VK_RETURN, 0x1c, KEYEVENTF_KEYUP, 0 ); flush_events(); process_messages_( hwnd ); ok_seq( key_up_seq ); @@ -7500,6 +7500,9 @@ static void test_ga_na_da(void) ok( !!hwnd, "CreateWindowW failed, error %lu\n", GetLastError() ); flush_events(); + ignore_WM_IME_NOTIFY = TRUE; + ignore_IME_NOTIFY = TRUE; + himc = ImmCreateContext(); ok_ne( NULL, himc, HIMC, "%p" ); ctx = ImmLockIMC( himc ); @@ -7508,6 +7511,15 @@ static void test_ga_na_da(void) ok_ret( 1, ImmSetOpenStatus( himc, TRUE ) ); ok_ret( 1, ImmSetConversionStatus( himc, IME_CMODE_FULLSHAPE | IME_CMODE_NATIVE, IME_SMODE_PHRASEPREDICT ) ); flush_events(); + + keybd_event( 'R', 0x13, 0, 0 ); + flush_events(); + keybd_event( 'R', 0x13, KEYEVENTF_KEYUP, 0 ); + + keybd_event( VK_RETURN, 0x1c, 0, 0 ); + flush_events(); + keybd_event( VK_RETURN, 0x1c, KEYEVENTF_KEYUP, 0 ); + flush_events(); memset( ime_calls, 0, sizeof(ime_calls) ); ime_call_count = 0; @@ -7608,9 +7620,6 @@ static void test_ga_na_da(void) todo_wine ok_seq( partial_return_seq ); - ignore_WM_IME_NOTIFY = TRUE; - ignore_IME_NOTIFY = TRUE; - /* cancelling clears the composition string */ keybd_event( 'R', 0x13, 0, 0 ); @@ -8033,6 +8042,12 @@ START_TEST(imm32) test_ImmEnumInputContext(); + /* run these before installing the custom IME, sometimes it takes a moment + * to uninstall and the default IME doesn't activate immediately + */ + test_ga_na_da(); + test_nihongo_no(); + test_ImmInstallIME(); wineime_hkl = ime_install(); @@ -8084,9 +8099,6 @@ START_TEST(imm32) if (wineime_hkl) ime_cleanup( wineime_hkl, TRUE ); - test_ga_na_da(); - test_nihongo_no(); - if (init()) { test_ImmNotifyIME();