From 81cf09c6da5d0406c37a7711fd378e062e42d984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Zalewski?= Date: Sat, 5 May 2007 20:22:30 +0200 Subject: [PATCH] comctl32: treeview: Treeviews shouldn't be sending NM_TOOLTIPSCREATED (with testcase). --- dlls/comctl32/tests/treeview.c | 10 +++++++++- dlls/comctl32/treeview.c | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c index 6f94fa78761..3b33eab1d0f 100644 --- a/dlls/comctl32/tests/treeview.c +++ b/dlls/comctl32/tests/treeview.c @@ -169,6 +169,8 @@ static const struct message TestGetSetTextColorSeq[] = { }; static const struct message TestGetSetToolTipsSeq[] = { + { WM_COMMAND, sent|wparam, 0x02000000 }, + { WM_PARENTNOTIFY, sent|wparam|defwinproc, 0x00020002 }, { TVM_SETTOOLTIPS, sent|wparam|lparam, 0x00000000, 0x00000000 }, { TVM_GETTOOLTIPS, sent|wparam|lparam, 0x00000000, 0x00000000 }, { 0 } @@ -470,6 +472,11 @@ static void TestGetSetTextColor(void) static void TestGetSetToolTips(void) { HWND hwndLastToolTip = NULL; + HWND hPopupTreeView; + + /* show even WS_POPUP treeview don't send NM_TOOLTIPSCREATED */ + hPopupTreeView = CreateWindow(WC_TREEVIEW, NULL, WS_POPUP|WS_VISIBLE, 0, 0, 100, 100, hMainWnd, NULL, NULL, NULL); + DestroyWindow(hPopupTreeView); /* Testing setting a NULL ToolTip */ SendMessage( hTree, TVM_SETTOOLTIPS, 0, 0 ); @@ -552,7 +559,7 @@ static void TestGetSet(void) flush_sequences(MsgSequences, NUM_MSG_SEQUENCES); TestGetSetToolTips(); ok_sequence(MsgSequences, LISTVIEW_SEQ_INDEX, TestGetSetToolTipsSeq, - "TestGetSetToolTips", FALSE); + "TestGetSetToolTips", TRUE); /* TVM_GETUNICODEFORMAT and TVM_SETUNICODEFORMAT */ flush_sequences(MsgSequences, NUM_MSG_SEQUENCES); @@ -614,6 +621,7 @@ static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPa { NMHDR *pHdr = (NMHDR *)lParam; + ok(pHdr->code != NM_FIRST - 19, "Treeview should not send NM_TOOLTIPSCREATED\n"); if (pHdr->idFrom == 100) { NMTREEVIEWA *pTreeView = (LPNMTREEVIEWA) lParam; switch(pHdr->code) { diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c index 8adf28bd3c0..40c053d85a6 100644 --- a/dlls/comctl32/treeview.c +++ b/dlls/comctl32/treeview.c @@ -4967,7 +4967,9 @@ TREEVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs) TREEVIEW_NotifyFormat(infoPtr, infoPtr->hwndNotify, NF_REQUERY); if (!(infoPtr->dwStyle & TVS_NOTOOLTIPS)) - infoPtr->hwndToolTip = COMCTL32_CreateToolTip(hwnd); + infoPtr->hwndToolTip = CreateWindowExW(0, TOOLTIPS_CLASSW, NULL, WS_POPUP, + CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, + hwnd, 0, 0, 0); if (infoPtr->dwStyle & TVS_CHECKBOXES) initialize_checkboxes(infoPtr);