From 67728f7634ddb43689df41e2551393e8c2e55bc6 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Mon, 7 Apr 2008 14:18:34 -0700 Subject: [PATCH 7/7] user32: handle VK_ESCAPE correctly in EDIT_WM_KeyDown. --- dlls/user32/edit.c | 4 ++++ dlls/user32/tests/edit.c | 17 ++++------------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index f359555..2159ab7 100644 --- a/dlls/user32/edit.c +++ b/dlls/user32/edit.c @@ -4610,6 +4610,10 @@ static LRESULT EDIT_WM_KeyDown(EDITSTATE *es, INT key) SendMessageW( hwndParent, WM_COMMAND, IDOK, (LPARAM)GetDlgItem( hwndParent, IDOK ) ); } break; + case VK_ESCAPE: + if (!(es->style & ES_MULTILINE)) + SendMessageW(GetParent(es->hwndSelf), WM_COMMAND, IDCANCEL, (LPARAM)GetDlgItem( GetParent(es->hwndSelf), IDCANCEL ) ); + break; } return 0; } diff --git a/dlls/user32/tests/edit.c b/dlls/user32/tests/edit.c index 9542714..058d9fe 100644 --- a/dlls/user32/tests/edit.c +++ b/dlls/user32/tests/edit.c @@ -300,8 +300,6 @@ static INT_PTR CALLBACK edit_singleline_dialog_proc(HWND hdlg, UINT msg, WPARAM break; case 1: PostMessage(hedit, WM_KEYDOWN, VK_RETURN, 0x1c0001); - /* needed so the test does not wait for user input */ - PostMessage(hdlg, WM_USER, 0xfeedbeef, 0); break; case 2: PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001); @@ -330,8 +328,6 @@ static INT_PTR CALLBACK edit_singleline_dialog_proc(HWND hdlg, UINT msg, WPARAM case 7: PostMessage(hedit, WM_KEYDOWN, VK_RETURN, 0x1c0001); PostMessage(hedit, WM_CHAR, VK_RETURN, 0x1c0001); - /* needed so the test does not wait for user input */ - PostMessage(hdlg, WM_USER, 0xfeedbeef, 0); break; case 8: PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001); @@ -371,11 +367,6 @@ static INT_PTR CALLBACK edit_singleline_dialog_proc(HWND hdlg, UINT msg, WPARAM HWND hfocus = GetFocus(); int len = SendMessage(hedit, WM_GETTEXTLENGTH, 0, 0); - if (wparam == 0xfeedbeef) - { - EndDialog(hdlg, 66); - break; - } if (wparam != 0xdeadbeef) break; @@ -1872,7 +1863,7 @@ static void test_singleline_wantreturn_edit_dialog(void) /* tests for WM_KEYDOWN */ r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 0); - todo_wine ok(222 == r, "Expected %d, got %d\n", 222, r); + ok(222 == r, "Expected %d, got %d\n", 222, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 1); ok(111 == r, "Expected %d, got %d\n", 111, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 2); @@ -1888,7 +1879,7 @@ static void test_singleline_wantreturn_edit_dialog(void) /* tests for WM_KEYDOWN + WM_CHAR */ r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 6); - todo_wine ok(222 == r, "Expected %d, got %d\n", 222, r); + ok(222 == r, "Expected %d, got %d\n", 222, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 7); ok(111 == r, "Expected %d, got %d\n", 111, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8); @@ -1896,7 +1887,7 @@ static void test_singleline_wantreturn_edit_dialog(void) /* tests for WM_KEYDOWN */ r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 0); - todo_wine ok(222 == r, "Expected %d, got %d\n", 222, r); + ok(222 == r, "Expected %d, got %d\n", 222, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 1); ok(111 == r, "Expected %d, got %d\n", 111, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 2); @@ -1912,7 +1903,7 @@ static void test_singleline_wantreturn_edit_dialog(void) /* tests for WM_KEYDOWN + WM_CHAR */ r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 6); - todo_wine ok(222 == r, "Expected %d, got %d\n", 222, r); + ok(222 == r, "Expected %d, got %d\n", 222, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 7); ok(111 == r, "Expected %d, got %d\n", 111, r); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8); -- 1.5.3.6