Listview T4

Dimitrie O. Paun dpaun at rogers.com
Fri Oct 18 15:27:27 CDT 2002


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 */






More information about the wine-patches mailing list