user32: Handle VK_ESCAPE correctly in EDIT_WM_KeyDown.

This commit is contained in:
Lei Zhang 2008-04-07 14:18:34 -07:00 committed by Alexandre Julliard
parent 7f10fe0744
commit 6736ed82ed
2 changed files with 8 additions and 13 deletions

View File

@ -4610,6 +4610,10 @@ static LRESULT EDIT_WM_KeyDown(EDITSTATE *es, INT key)
SendMessageW( hwndParent, WM_COMMAND, IDOK, (LPARAM)GetDlgItem( hwndParent, IDOK ) ); SendMessageW( hwndParent, WM_COMMAND, IDOK, (LPARAM)GetDlgItem( hwndParent, IDOK ) );
} }
break; 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; return 0;
} }

View File

@ -300,8 +300,6 @@ static INT_PTR CALLBACK edit_singleline_dialog_proc(HWND hdlg, UINT msg, WPARAM
break; break;
case 1: case 1:
PostMessage(hedit, WM_KEYDOWN, VK_RETURN, 0x1c0001); PostMessage(hedit, WM_KEYDOWN, VK_RETURN, 0x1c0001);
/* needed so the test does not wait for user input */
PostMessage(hdlg, WM_USER, 0xfeedbeef, 0);
break; break;
case 2: case 2:
PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001); 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: case 7:
PostMessage(hedit, WM_KEYDOWN, VK_RETURN, 0x1c0001); PostMessage(hedit, WM_KEYDOWN, VK_RETURN, 0x1c0001);
PostMessage(hedit, WM_CHAR, 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; break;
case 8: case 8:
PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001); 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(); HWND hfocus = GetFocus();
int len = SendMessage(hedit, WM_GETTEXTLENGTH, 0, 0); int len = SendMessage(hedit, WM_GETTEXTLENGTH, 0, 0);
if (wparam == 0xfeedbeef)
{
EndDialog(hdlg, 66);
break;
}
if (wparam != 0xdeadbeef) if (wparam != 0xdeadbeef)
break; break;
@ -1872,7 +1863,7 @@ static void test_singleline_wantreturn_edit_dialog(void)
/* tests for WM_KEYDOWN */ /* tests for WM_KEYDOWN */
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 0); 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); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 1);
ok(111 == r, "Expected %d, got %d\n", 111, r); ok(111 == r, "Expected %d, got %d\n", 111, r);
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 2); 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 */ /* tests for WM_KEYDOWN + WM_CHAR */
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 6); 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); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 7);
ok(111 == r, "Expected %d, got %d\n", 111, r); ok(111 == r, "Expected %d, got %d\n", 111, r);
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8); 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 */ /* tests for WM_KEYDOWN */
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 0); 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); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 1);
ok(111 == r, "Expected %d, got %d\n", 111, r); ok(111 == r, "Expected %d, got %d\n", 111, r);
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 2); 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 */ /* tests for WM_KEYDOWN + WM_CHAR */
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 6); 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); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 7);
ok(111 == r, "Expected %d, got %d\n", 111, r); ok(111 == r, "Expected %d, got %d\n", 111, r);
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8); r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8);