riched20: Implement handling of WM_KEYDOWN VK_ESCAPE in the dialog mode.

This commit is contained in:
Sergey Khodych 2009-10-04 22:50:50 +03:00 committed by Alexandre Julliard
parent 8fb119ba8b
commit a50ca4ace0
2 changed files with 34 additions and 0 deletions

View File

@ -2289,6 +2289,10 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
return TRUE;
}
break;
case VK_ESCAPE:
if (editor->bDialogMode && editor->hwndParent)
PostMessageW(editor->hwndParent, WM_CLOSE, 0, 0);
return TRUE;
case 'A':
if (ctrl_is_down)
{

View File

@ -6830,6 +6830,11 @@ static void test_dialogmode(void)
lcount = SendMessage(hwRichEdit, EM_GETLINECOUNT, 0, 0);
ok(2 == lcount, "expected 2, got %d\n", lcount);
memset(&dm_messages, 0, sizeof(dm_messages));
r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_ESCAPE, 0x10001);
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_GETDLGCODE, 0, (LPARAM)&msg);
ok(0x8f == r, "expected 0x8f, got 0x%x\n", r);
@ -6843,6 +6848,11 @@ static void test_dialogmode(void)
lcount = SendMessage(hwRichEdit, EM_GETLINECOUNT, 0, 0);
ok(2 == lcount, "expected 2, got %d\n", lcount);
memset(&dm_messages, 0, sizeof(dm_messages));
r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_ESCAPE, 0x10001);
ok(0 == r, "expected 0, got %d\n", r);
test_dm_messages(0, 0, 0);
hwButton = CreateWindow("BUTTON", "OK", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
100, 100, 50, 20, hwParent, (HMENU)ID_RICHEDITTESTDBUTTON, GetModuleHandleA(0), NULL);
ok(hwButton!=NULL, "CreateWindow failed with error code %d\n", GetLastError());
@ -6870,6 +6880,11 @@ static void test_dialogmode(void)
lcount = SendMessage(hwRichEdit, EM_GETLINECOUNT, 0, 0);
ok(2 == lcount, "expected 2, got %d\n", lcount);
memset(&dm_messages, 0, sizeof(dm_messages));
r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_ESCAPE, 0x10001);
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_GETDLGCODE, 0, (LPARAM)&msg);
ok(0x8f == r, "expected 0x8f, got 0x%x\n", r);
@ -6883,6 +6898,11 @@ static void test_dialogmode(void)
lcount = SendMessage(hwRichEdit, EM_GETLINECOUNT, 0, 0);
ok(3 == lcount, "expected 3, got %d\n", lcount);
memset(&dm_messages, 0, sizeof(dm_messages));
r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_ESCAPE, 0x10001);
ok(0 == r, "expected 0, got %d\n", r);
test_dm_messages(0, 0, 0);
hwButton = CreateWindow("BUTTON", "OK", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
100, 100, 50, 20, hwParent, (HMENU)ID_RICHEDITTESTDBUTTON, GetModuleHandleA(0), NULL);
ok(hwButton!=NULL, "CreateWindow failed with error code %d\n", GetLastError());
@ -6907,6 +6927,11 @@ static void test_dialogmode(void)
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_ESCAPE, 0x10001);
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_GETDLGCODE, 0, (LPARAM)&msg);
ok(0x8b == r, "expected 0x8b, got 0x%x\n", r);
@ -6917,6 +6942,11 @@ static void test_dialogmode(void)
ok(0 == r, "expected 0, got %d\n", r);
test_dm_messages(0, 1, 0);
memset(&dm_messages, 0, sizeof(dm_messages));
r = SendMessage(hwRichEdit, WM_KEYDOWN, VK_ESCAPE, 0x10001);
ok(0 == r, "expected 0, got %d\n", r);
test_dm_messages(0, 0, 0);
hwButton = CreateWindow("BUTTON", "OK", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
100, 100, 50, 20, hwParent, (HMENU)ID_RICHEDITTESTDBUTTON, GetModuleHandleA(0), NULL);
ok(hwButton!=NULL, "CreateWindow failed with error code %d\n", GetLastError());