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@dclark (or something like that).
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;