>From 04a4a302efb702d184a23740a9e70994dc38c425 Mon Sep 17 00:00:00 2001 From: Sergey Khodych Date: Sat, 5 Sep 2009 22:26:11 +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 41778ba..294dfae 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2290,6 +2290,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 3890a4f..e54a8bc 100644 --- a/dlls/riched20/tests/editor.c +++ b/dlls/riched20/tests/editor.c @@ -6785,7 +6785,13 @@ static void test_dialogmode(void) r = SendMessage(hwRichEdit, WM_GETDLGCODE, 0, (LPARAM)&msg); ok(0x8f == r, "expected 0x8f, got 0x%x\n", r); + + memset(&dm_messages, 0, sizeof(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); memset(&dm_messages, 0, sizeof(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); @@ -6798,6 +6804,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, ES_MULTILINE, hwParent); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6816,6 +6827,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6852,6 +6868,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, ES_MULTILINE|ES_WANTRETURN, hwParent); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6870,6 +6891,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6906,6 +6932,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, 0, hwParent); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6921,6 +6952,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6948,6 +6984,11 @@ static void test_dialogmode(void) hwRichEdit = new_window(RICHEDIT_CLASS, ES_WANTRETURN, hwParent); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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); @@ -6963,6 +7004,11 @@ static void test_dialogmode(void) test_dm_messages(0, 0, 0); memset(&dm_messages, 0, sizeof(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); + memset(&dm_messages, 0, sizeof(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