Extensive ScrollDC investigation (resubmit)
Alexandre Julliard
julliard at winehq.org
Fri Apr 24 07:58:06 CDT 2009
Aric Stewart <aric at codeweavers.com> writes:
> @@ -120,13 +122,58 @@ BOOL CDECL X11DRV_ScrollDC( HDC hdc, INT dx, INT dy, const RECT *lprcScroll,
> if( TRACE_ON( scroll)) dump_region( "Destination scroll region: ", DstRgn);
> /* if there are any, do it */
> if( res > NULLREGION) {
> - RECT rect ;
> + RECT rect;
> + HRGN UpdateClip = CreateRectRgn(0,0,0,0);
> + /* Scroll Window does not scroll any already invalid areas */
> + if (GetUpdateRgn(WindowFromDC(hdc),UpdateRgn,FALSE)!=NULLREGION)
> + {
> + HRGN SrcMask;
> + /* Apparently special case. If the update Rgn fills the entire
> + DstRgn windows appears to ignore it */
This looks very wrong. Retrieving the update region from a DC doesn't
seem right in the first place, and it you have to ignore it in some
cases it shows that there's something else going on here.
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list