>From ecc6b0daa0fe2b5d3558f7b3e5481006bb2c5d38 Mon Sep 17 00:00:00 2001 From: Sergey Khodych Date: Tue, 1 Sep 2009 01:46:44 +0300 Subject: riched20: Implement handling of WM_KEYDOWN VK_TAB in a dialog mode. --- dlls/riched20/editor.c | 4 +++ dlls/riched20/tests/editor.c | 46 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 0 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 514198e..fe1ecca 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2293,6 +2293,10 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey) if (editor->bDialogMode) PostMessageW(editor->hwndParent, WM_CLOSE, 0, 0); return TRUE; + case VK_TAB: + if (editor->bDialogMode) + SendMessageW(editor->hwndParent, WM_NEXTDLGCTL, shift_is_down, 0); + return TRUE; case 'A': if (ctrl_is_down) { diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c index b593d8f..4015992 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -6793,6 +6793,12 @@ static void test_dialogmode(void) ok(0x8f == r, "expected 0x8f, got 0x%x\n", r); zero_dm_messages(); + + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 1); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 1, 0); @@ -6805,6 +6811,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, ES_MULTILINE, hwParent); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 0); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 0, 0); @@ -6823,6 +6834,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 1); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 1, 0); @@ -6859,6 +6875,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, ES_MULTILINE|ES_WANTRETURN, hwParent); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 0); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 0, 0); @@ -6877,6 +6898,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 1); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 0, 0); @@ -6913,6 +6939,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, 0, hwParent); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 0); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 0, 0); @@ -6928,6 +6959,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 1); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 1, 0); @@ -6955,6 +6991,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, ES_WANTRETURN, hwParent); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 0); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 0, 0); @@ -6970,6 +7011,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_TAB, 0xf0001); + ok(0 == r, "expected 0, got %d\n", r); + test_dm_messages(0, 0, 1); + zero_dm_messages(); + r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_RETURN, 0x1c0001); ok(0 == r, "expected 0, got %d\n", r); test_dm_messages(0, 0, 0); -- 1.5.3.3