Lei Zhang : user32: Handle VK_ESCAPE correctly in EDIT_WM_KeyDown.

Alexandre Julliard julliard at winehq.org
Tue Apr 8 06:38:06 CDT 2008


Module: wine
Branch: master
Commit: 6736ed82ed5cb416771390c5c1bee7781e95b61c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6736ed82ed5cb416771390c5c1bee7781e95b61c

Author: Lei Zhang <thestig at google.com>
Date:   Mon Apr  7 14:18:34 2008 -0700

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);




More information about the wine-cvs mailing list