Listview P0

Dimitrie O. Paun dpaun at rogers.com
Fri Oct 11 17:19:21 CDT 2002


This is O7 resent, it's actually P0.

ChangeLog
  Use the item box rather than the bounds when invalidating
  Implement 'bPartial' in EnsureVisible.

Index: dlls/comctl32/listview.c
===================================================================
RCS file: /var/cvs/wine/dlls/comctl32/listview.c,v
retrieving revision 1.222
diff -u -r1.222 listview.c
--- dlls/comctl32/listview.c	11 Oct 2002 18:47:03 -0000	1.222
+++ dlls/comctl32/listview.c	11 Oct 2002 22:16:00 -0000
@@ -866,10 +866,9 @@
 }
 
 #define LISTVIEW_InvalidateItem(infoPtr, nItem) do { \
-    RECT rcItem; \
-    rcItem.left = LVIR_BOUNDS; \
-    if(LISTVIEW_GetItemRect(infoPtr, nItem, &rcItem)) \
-	LISTVIEW_InvalidateRect(infoPtr, &rcItem); \
+    RECT rcBox; \
+    if(LISTVIEW_GetItemBox(infoPtr, nItem, &rcBox)) \
+	LISTVIEW_InvalidateRect(infoPtr, &rcBox); \
 } while (0)
 
 #define LISTVIEW_InvalidateList(infoPtr)\
@@ -4102,12 +4101,12 @@
     INT nVertAdjust = 0;
     INT nHorzDiff = 0;
     INT nVertDiff = 0;
-    RECT rcItem;
-
-    /* FIXME: ALWAYS bPartial == FALSE, FOR NOW! */
+    RECT rcItem, rcTemp;
 
     rcItem.left = LVIR_BOUNDS;
     if (!LISTVIEW_GetItemRect(infoPtr, nItem, &rcItem)) return FALSE;
+
+    if (bPartial && IntersectRect(&rcTemp, &infoPtr->rcList, &rcItem)) return TRUE;
     
     if (rcItem.left < infoPtr->rcList.left || rcItem.right > infoPtr->rcList.right)
     {




More information about the wine-patches mailing list