wine/dlls/comctl32 listview.c
Dimitrie O. Paun
dpaun at rogers.com
Thu Feb 13 19:36:43 CST 2003
On February 12, 2003 11:49 am, Rein Klazes wrote:
> This causes a rgeression in newsbin. The listview with the headers do
> not update during a "retrieve all headers".
Indeed. Thanks for the bug report. Please give this a shot, it should
fix it.
ChangeLog
Correctly remember the first paint event, but delay item metrics
calculation until we actually have some items.
Index: dlls/comctl32/listview.c
===================================================================
RCS file: /var/cvs/wine/dlls/comctl32/listview.c,v
retrieving revision 1.339
diff -u -r1.339 listview.c
--- dlls/comctl32/listview.c 11 Feb 2003 22:17:31 -0000 1.339
+++ dlls/comctl32/listview.c 14 Feb 2003 01:09:10 -0000
@@ -226,6 +226,7 @@
HIMAGELIST himlState;
BOOL bLButtonDown;
BOOL bRButtonDown;
+ BOOL bNoItemMetrics; /* flags if item metrics are not yet computed */
INT nItemHeight;
INT nItemWidth;
RANGES selectionRanges;
@@ -7032,6 +7033,7 @@
infoPtr->nHotItem = -1;
infoPtr->bRedraw = TRUE;
infoPtr->bFirstPaint = TRUE;
+ infoPtr->bNoItemMetrics = TRUE;
infoPtr->iconSpacing.cx = GetSystemMetrics(SM_CXICONSPACING);
infoPtr->iconSpacing.cy = GetSystemMetrics(SM_CYICONSPACING);
infoPtr->nEditLabelItem = -1;
@@ -7850,11 +7852,12 @@
{
TRACE("(hdc=%p)\n", hdc);
- if (infoPtr->bFirstPaint && infoPtr->nItemCount)
+ infoPtr->bFirstPaint = FALSE;
+ if (infoPtr->bNoItemMetrics && infoPtr->nItemCount)
{
UINT uView = infoPtr->dwStyle & LVS_TYPEMASK;
- infoPtr->bFirstPaint = FALSE;
+ infoPtr->bNoItemMetrics = FALSE;
LISTVIEW_UpdateItemSize(infoPtr);
if (uView == LVS_ICON || uView == LVS_SMALLICON)
LISTVIEW_Arrange(infoPtr, LVA_DEFAULT);
--
Dimi.
More information about the wine-patches
mailing list