comctl32/treeview: Handle EN_KILLFOCUS in WM_COMMAND handler.

This commit is contained in:
Nikolay Sivov 2009-08-06 13:43:18 +04:00 committed by Alexandre Julliard
parent 578e872b31
commit 861fb2eddd
2 changed files with 5 additions and 3 deletions

View File

@ -875,7 +875,7 @@ static void test_itemedit(void)
r = SendMessage(hTree, WM_COMMAND, MAKEWPARAM(0, EN_KILLFOCUS), (LPARAM)edit); r = SendMessage(hTree, WM_COMMAND, MAKEWPARAM(0, EN_KILLFOCUS), (LPARAM)edit);
expect(0, r); expect(0, r);
todo_wine ok(!IsWindow(edit), "Expected edit control to be destroyed\n"); ok(!IsWindow(edit), "Expected edit control to be destroyed\n");
DestroyWindow(hTree); DestroyWindow(hTree);
} }

View File

@ -3637,6 +3637,9 @@ TREEVIEW_Command(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
ReleaseDC(infoPtr->hwnd, hdc); ReleaseDC(infoPtr->hwnd, hdc);
break; break;
} }
case EN_KILLFOCUS:
TREEVIEW_EndEditLabelNow(infoPtr, FALSE);
break;
default: default:
return SendMessageW(infoPtr->hwndNotify, WM_COMMAND, wParam, lParam); return SendMessageW(infoPtr->hwndNotify, WM_COMMAND, wParam, lParam);
@ -3757,8 +3760,7 @@ TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel)
WCHAR *newText = tmpText; WCHAR *newText = tmpText;
int iLength = 0; int iLength = 0;
if (!infoPtr->hwndEdit) if (!IsWindow(infoPtr->hwndEdit)) return FALSE;
return FALSE;
tvdi.hdr.hwndFrom = hwnd; tvdi.hdr.hwndFrom = hwnd;
tvdi.hdr.idFrom = GetWindowLongPtrW(hwnd, GWLP_ID); tvdi.hdr.idFrom = GetWindowLongPtrW(hwnd, GWLP_ID);