Nikolay Sivov (@nsivov) commented about dlls/comctl32/listview.c:
/* narrow down the columns we need to paint */ for(col = 0; col < DPA_GetPtrCount(infoPtr->hdpaColumns); col++) { + COLUMN_INFO* col_info; INT index = SendMessageW(infoPtr->hwndHeader, HDM_ORDERTOINDEX, col, 0);
- LISTVIEW_GetHeaderRect(infoPtr, index, &rcItem); - if ((rcItem.right + Origin.x >= rcClip.left) && (rcItem.left + Origin.x < rcClip.right)) + col_info = DPA_GetPtr(infoPtr->hdpaColumns, index); + SendMessageW(infoPtr->hwndHeader, HDM_GETITEMRECT, index, (LPARAM)&col_info->rcHeader); + if ((col_info->rcHeader.right + Origin.x >= rcClip.left) && (col_info->rcHeader.left + Origin.x < rcClip.right)) ranges_additem(colRanges, index); }
GetHeaderRect() is used in many places, changing one of them will likely cause inconsistencies. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8320#note_106608