GetUpdateRect should return client coordinates unless the window was created with the CS_OWNDC style and the mapping mode is not MM_TEXT, in which case the result should be in logical coordinates.
diff --git a/windows/painting.c b/windows/painting.c index c8c282c..1f7f89b 100644 --- a/windows/painting.c +++ b/windows/painting.c
@@ -643,6 +643,13 @@ if (GetUpdateRgn32( hwnd, hrgn, erase ) == ERROR) return FALSE; GetRgnBox32( hrgn, rect ); DeleteObject32( hrgn ); + if (wndPtr->class->style & CS_OWNDC) + { + if (GetMapMode32(wndPtr->dce->hDC) != MM_TEXT) + { + DPtoLP32 (wndPtr->dce->hDC, (LPPOINT32)rect, 2); + } + } } else SetRectEmpty32( rect ); }