From 485fde811db67ba2aaf51ac6f0850f32a6b5afe9 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 9 Dec 2011 10:42:54 +0300 Subject: [PATCH] comctl32/listview: Create header when LVS_EX_FULLROWSELECT is requested. --- dlls/comctl32/listview.c | 5 +++++ dlls/comctl32/tests/listview.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index c951633516a..3cd316a3ccd 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -8450,6 +8450,11 @@ static DWORD LISTVIEW_SetExtendedListViewStyle(LISTVIEW_INFO *infoPtr, DWORD mas LISTVIEW_UpdateSize(infoPtr); } + if((infoPtr->dwLvExStyle ^ old_ex_style) & LVS_EX_FULLROWSELECT) + { + LISTVIEW_CreateHeader(infoPtr); + } + if((infoPtr->dwLvExStyle ^ old_ex_style) & LVS_EX_TRANSPARENTBKGND) { if (infoPtr->dwLvExStyle & LVS_EX_TRANSPARENTBKGND) diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c index 64d6090ef39..b3df59e7c63 100644 --- a/dlls/comctl32/tests/listview.c +++ b/dlls/comctl32/tests/listview.c @@ -1557,6 +1557,20 @@ static void test_create(void) ok(hHeader == GetDlgItem(hList, 0), "Expected header as dialog item\n"); DestroyWindow(hList); + /* setting LVS_EX_FULLROWSELECT creates header */ + hList = CreateWindow("SysListView32", "Test", LVS_REPORT, 0, 0, 100, 100, NULL, NULL, + GetModuleHandle(NULL), 0); + hHeader = (HWND)SendMessage(hList, LVM_GETHEADER, 0, 0); + ok(!IsWindow(hHeader), "Header shouldn't be created\n"); + ok(NULL == GetDlgItem(hList, 0), "NULL dialog item expected\n"); + SendMessage(hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT); + hHeader = (HWND)SendMessage(hList, LVM_GETHEADER, 0, 0); + ok(IsWindow(hHeader) || + broken(!IsWindow(hHeader)), /* 4.7x common controls */ + "Header should be created\n"); + ok(hHeader == GetDlgItem(hList, 0), "Expected header as dialog item\n"); + DestroyWindow(hList); + /* not report style accepts LVS_EX_HEADERDRAGDROP too */ hList = create_listview_control(LVS_ICON); SendMessage(hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_HEADERDRAGDROP); -- 2.11.4.GIT