[PATCH v5 4/7] win32u: fix return value of SetDIBitsToDevice for EMF DC.
Jinoh Kang
jinoh.kang.kr at gmail.com
Mon Nov 1 00:30:43 CDT 2021
Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
dlls/win32u/emfdrv.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/dlls/win32u/emfdrv.c b/dlls/win32u/emfdrv.c
index 395d51048d8..dc01409f4ad 100644
--- a/dlls/win32u/emfdrv.c
+++ b/dlls/win32u/emfdrv.c
@@ -416,6 +416,17 @@ static INT CDECL EMFDRV_SetDIBitsToDevice( PHYSDEV dev, INT x_dst, INT y_dst, DW
UINT lines, const void *bits, BITMAPINFO *info,
UINT usage )
{
+ UINT src_height;
+
+ if (info->bmiHeader.biHeight >= 0)
+ {
+ src_height = (UINT)info->bmiHeader.biHeight;
+ if (src_height > y_src + height) src_height = y_src + height;
+
+ if (src_height < startscan) lines = 0;
+ else if (lines > src_height - startscan) lines = src_height - startscan;
+ }
+
/* FIXME: Update bound rect */
return lines;
}
--
2.31.1
More information about the wine-devel
mailing list