Module: wine Branch: master Commit: 485fde811db67ba2aaf51ac6f0850f32a6b5afe9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=485fde811db67ba2aaf51ac6f0...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Fri Dec 9 10:42:54 2011 +0300
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(+), 0 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index c951633..3cd316a 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 64d6090..b3df59e 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);