ScrollDC32 modified to return rect in logical coordinate.
diff --git a/windows/scroll.c b/windows/scroll.c
index c20c485..fee224e 100644
--- a/windows/scroll.c
+++ b/windows/scroll.c
@@ -67,8 +67,9 @@
/*************************************************************************
* ScrollDC32 (USER32.449)
*
- * Both 'rc' and 'prLClip' are in logical units but update info is
- * returned in device coordinates.
+ * Only the hrgnUpdate is return in device coordinate.
+ * rcUpdate must be returned in logical coordinate to comply with win API.
+ *
*/
BOOL32 WINAPI ScrollDC32( HDC32 hdc, INT32 dx, INT32 dy, const RECT32 *rc,
const RECT32 *prLClip, HRGN32 hrgnUpdate,
@@ -148,10 +149,16 @@
OffsetRgn32( hrgn2, dx, dy );
CombineRgn32( hrgn, hrgn, hrgn2, RGN_DIFF );
- if( rcUpdate ) GetRgnBox32( hrgn, rcUpdate );
+ if( rcUpdate )
+ {
+ GetRgnBox32( hrgn, rcUpdate );
+ //Put the rcUpdate in logical coordinate
+ DPtoLP32( hdc, (LPPOINT32)rcUpdate, 2 );
+ }
if (!hrgnUpdate) DeleteObject32( hrgn );
DeleteObject32( hrgn2 );
+
}
}
else