[PATCH 2/7] Don't forward WM_COMMAND (EN_KILLFOCUS) from Edit to parent window
Nikolay Sivov
bunglehead at gmail.com
Sat Nov 21 03:23:05 CST 2009
---
dlls/comctl32/listview.c | 1 +
dlls/comctl32/tests/listview.c | 17 +++++++++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 594db6e..40804b5 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -11409,6 +11409,7 @@ static LRESULT LISTVIEW_Command(LISTVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lP
case EN_KILLFOCUS:
{
LISTVIEW_CancelEditLabel(infoPtr);
+ break;
}
default:
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 6b3ebff..99c25da 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -271,6 +271,13 @@ static const struct message lvs_ex_transparentbkgnd_seq[] = {
{ 0 }
};
+static const struct message edit_end_nochange[] = {
+ { WM_NOTIFY, sent|id, 0, 0, LVN_ENDLABELEDITA }, /* todo */
+ { WM_NOTIFY, sent|id, 0, 0, NM_CUSTOMDRAW }, /* todo */
+ { WM_NOTIFY, sent|id, 0, 0, NM_SETFOCUS },
+ { 0 }
+};
+
static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static LONG defwndproc_counter = 0;
@@ -3473,6 +3480,16 @@ static void test_editbox(void)
ok_sequence(sequences, EDITBOX_SEQ_INDEX, editbox_create_pos,
"edit box create - sizing", FALSE);
+ /* WM_COMMAND with EN_KILLFOCUS isn't forwared to parent */
+ SetFocus(hwnd);
+ hwndedit = (HWND)SendMessage(hwnd, LVM_EDITLABEL, 0, 0);
+ ok(IsWindow(hwndedit), "Expected Edit window to be created\n");
+ flush_sequences(sequences, NUM_MSG_SEQUENCES);
+ r = SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(0, EN_KILLFOCUS), (LPARAM)hwndedit);
+ expect(0, r);
+ ok_sequence(sequences, PARENT_SEQ_INDEX, edit_end_nochange,
+ "edit box WM_COMMAND (EN_KILLFOCUS)", TRUE);
+
DestroyWindow(hwnd);
}
--
1.5.6.5
--=-V3PazKCB66Iy1LbPOmsL--
More information about the wine-patches
mailing list