UI regression

Duane Clark junkmail at junkmail.com
Fri Mar 1 16:26:37 CST 2002


Jon Piesing wrote:
> Hi,
> 
> Earlier this year I "upgraded" from wine 20010510 to 20011226 in order
> to see if some kind of resource leak was fixed which caused screen 
> redraws to get progressively slower and slower and slower and slower, ....
> 
> That was fixed but there seemed to be a significant number of graphics
> and UI regressions. I've just upgraded to 20020228 to see if things
> were any better and within 5 minutes I've hit one of the ones I saw before.
> 
> In this case, screen re-draw works except for scroll-bars which are not
> drawn at all. If I look at the xterm where I start wine, I just see the
> same error message being printed over & over again ...
> 
> err:msg:DispatchMessageA BeginPaint not called on WM_PAINT for hwnd 2002e!
> 
> The application is a run-time version of the FileMaker Pro database.
> 
> The Linux version is a Suse 7.0 upgraded piecemeal.
> 
> It's relatively re-producable so I can turn on the appropriate debug
> messages if someone can advise what they are.

One of the appropriate messages would be "--debugmsg +scroll", which 
would be a good starting point.

By coincidence, I was just working a problem where scrollbars were not 
being drawn, so perhaps try this patch.


-- 
My real email is akamail.com at dclark (or something like that).
-------------- next part --------------
Index: dlls/comctl32/header.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/header.c,v
retrieving revision 1.43
diff -u -r1.43 header.c
--- dlls/comctl32/header.c	2002/02/02 18:06:03	1.43
+++ dlls/comctl32/header.c	2002/02/27 15:55:15
@@ -108,11 +108,13 @@
     int i, x;
 
     infoPtr->bRectsValid = TRUE;
-
+    TRACE("Num items %d\n", infoPtr->uNumItem);
     if (infoPtr->uNumItem == 0)
         return;
 
     GetClientRect (hwnd, &rect);
+    TRACE("Num items %d rect %d,%d-%d,%d\n", infoPtr->uNumItem,
+     rect.left, rect.top, rect.right, rect.bottom);
 
     x = rect.left;
     for (i = 0; i < infoPtr->uNumItem; i++) {
@@ -122,6 +124,7 @@
         phdi->rect.left = x;
         phdi->rect.right = phdi->rect.left + ((phdi->cxy>0)?phdi->cxy:0);
         x = phdi->rect.right;
+        TRACE("cxy=%d x=%d\n", phdi->cxy, x);
     }
 }
 
@@ -752,6 +755,9 @@
     lpRect->right  = infoPtr->items[iItem].rect.right;
     lpRect->top    = infoPtr->items[iItem].rect.top;
     lpRect->bottom = infoPtr->items[iItem].rect.bottom;
+    TRACE("HWND %x Rect L%dxT%d R%dxB%d\n", hwnd,
+        lpRect->left,  lpRect->top,
+        lpRect->right, lpRect->bottom);
 
     return TRUE;
 }
@@ -824,6 +830,9 @@
 
     if ((phdi == NULL) || (nItem < 0))
 	return -1;
+    
+    TRACE("cxy=%d current numitems=%d mask=%x \n",
+     phdi->cxy, infoPtr->uNumItem, phdi->mask);
 
     if (nItem > infoPtr->uNumItem)
         nItem = infoPtr->uNumItem;
@@ -1022,6 +1031,9 @@
     TRACE("Layout x=%d y=%d cx=%d cy=%d\n",
            lpLayout->pwpos->x, lpLayout->pwpos->y,
            lpLayout->pwpos->cx, lpLayout->pwpos->cy);
+    TRACE("HWND %x Rect L%dxT%d R%dxB%d\n", hwnd,
+        lpLayout->prc->left, lpLayout->prc->top,
+        lpLayout->prc->right, lpLayout->prc->bottom);
 
     infoPtr->bRectsValid = FALSE;
 


More information about the wine-users mailing list