I've changed my mind: this one should solve Rizsanyi's "Properties" problems. ;) ChangeLog Inspect style bits independently on style change. --- dlls/comctl32/listview.c.T3 Fri Oct 18 16:04:21 2002 +++ dlls/comctl32/listview.c Fri Oct 18 16:22:33 2002 @@ -8182,18 +8182,22 @@ hl.pwpos = ℘ Header_Layout(infoPtr->hwndHeader, &hl); SetWindowPos(infoPtr->hwndHeader, infoPtr->hwndSelf, wp.x, wp.y, wp.cx, wp.cy, wp.flags); - if (!(LVS_NOCOLUMNHEADER & lpss->styleNew)) - ShowWindow(infoPtr->hwndHeader, SW_SHOWNORMAL); } infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr); infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr); - - if (uNewView == LVS_ICON || uNewView == LVS_SMALLICON) - { - if (lpss->styleNew & LVS_ALIGNLEFT) LISTVIEW_AlignLeft(infoPtr); - else LISTVIEW_AlignTop(infoPtr); - } + } + + if (uNewView == LVS_REPORT) + ShowWindow(infoPtr->hwndHeader, (LVS_NOCOLUMNHEADER & lpss->styleNew) ? SW_HIDE : SW_SHOWNORMAL); + + if ( (uNewView == LVS_ICON || uNewView == LVS_SMALLICON) && + (uNewView != uOldView || ((lpss->styleNew ^ lpss->styleOld) & LVS_ALIGNMASK)) ) + { + if (infoPtr->dwStyle & LVS_ALIGNLEFT) + LISTVIEW_AlignLeft(infoPtr); + else + LISTVIEW_AlignTop(infoPtr); } /* update the size of the client area */