Listview - fix for Outlook Background

Guy L. Albertelli galberte at neo.lrun.com
Sat Sep 28 21:26:40 CDT 2002


This fixes the problem with Outlook having the wrong background. Problem was that we were filling the background even when we should
not have. Only should be done on WM_ERASEBKGND (or the WM_PAINT .fErase flag). Outlook subclassed Listview and handled the erase
itself.

Guy Albertelli  <<galberte at neo.lrun.com>>

  dlls/comctl32/listview.c
   - Eliminate extra background fills.
   - Eliminate bogus error messages.
-------------- next part --------------
Index: dlls/comctl32/listview.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/listview.c,v
retrieving revision 1.154
diff -u -r1.154 listview.c
--- dlls/comctl32/listview.c	27 Sep 2002 22:47:00 -0000	1.154
+++ dlls/comctl32/listview.c	29 Sep 2002 02:12:17 -0000
@@ -3017,7 +3017,6 @@
   LVITEMW lvItem;
   LVCOLUMNW lvColumn;
   UINT textoutOptions = ETO_CLIPPED | ETO_OPAQUE;
-  RECT rcTemp;
   INT textLeft;
   INT nLabelWidth = 0;
 
@@ -3049,16 +3048,6 @@
     }
   }
 
-
-  /* redraw the background of the item */
-  rcTemp = rcItem;
-  if(infoPtr->nColumnCount == (nSubItem + 1))
-    rcTemp.right  = infoPtr->rcList.right;
-  else
-    rcTemp.right += WIDTH_PADDING;
-
-  LISTVIEW_FillBkgnd(infoPtr, hdc, &rcTemp);
-
   /* set item colors */
   if (ListView_GetItemState(infoPtr->hwndSelf,nItem,LVIS_SELECTED) && Selected)
   {
@@ -3142,7 +3131,6 @@
   BOOL bImage = FALSE;
   INT   iBkMode = -1;
   UINT  textoutOptions = ETO_OPAQUE | ETO_CLIPPED;
-  RECT rcTemp;
 
   TRACE("(hdc=%x, nItem=%d)\n", hdc, nItem);
 
@@ -3157,15 +3145,6 @@
   LISTVIEW_GetItemW(infoPtr, &lvItem, TRUE);
   TRACE("   lvItem=%s\n", debuglvitem_t(&lvItem, TRUE));
 
-  /* redraw the background of the item */
-  rcTemp = rcItem;
-  if(infoPtr->nColumnCount == (nItem + 1))
-    rcTemp.right = infoPtr->rcList.right;
-  else
-    rcTemp.right+=WIDTH_PADDING;
-
-  LISTVIEW_FillBkgnd(infoPtr, hdc, &rcTemp);
-
   /* do indent */
   if (lvItem.iIndent>0 && infoPtr->iconSize.cx > 0)
   {
@@ -3349,8 +3328,6 @@
   TRACE("background rect (%d,%d)-(%d,%d)\n",
         rcFill.left, rcFill.top, rcFill.right, rcFill.bottom);
 
-  LISTVIEW_FillBkgnd(infoPtr, hdc, &rcFill);
-
   /* Set the item to the boundary box for now */
   rcItem = rcFill;
   TRACE("bound box for text+icon (%d,%d)-(%d,%d), iS.cx=%ld, nItemWidth=%d\n",
@@ -4638,10 +4615,6 @@
           nScrollPosHeight = 1;
           rcItem.top += infoPtr->rcList.top;
         }
-	else
-	{
-	    ERR("LVS_LIST top unknown, nScrollPosWidth=%d\n", nScrollPosWidth);
-	}
 
 	if (nScrollPosHeight)
 	{
@@ -4670,10 +4643,6 @@
           nScrollPosHeight = 1;
           rcItem.bottom -= infoPtr->rcList.bottom;
         }
-	else  /* LVS_LIST */
-	{
-	    ERR("LVS_LIST bottom unknown, nScrollPosWidth=%d\n", nScrollPosWidth);
-	}
 
 	if (nScrollPosHeight)
 	{


More information about the wine-patches mailing list