Module: wine Branch: master Commit: 9adaca0f19823aad8c7663fdd310862ef0ccd31a URL: https://gitlab.winehq.org/wine/wine/-/commit/9adaca0f19823aad8c7663fdd310862...
Author: Piotr Caban piotr@codeweavers.com Date: Thu May 4 19:37:32 2023 +0200
gdi32: Handle NEXTBAND escape in Escape().
---
dlls/gdi32/dc.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 0b5e0824d00..c747d3a478e 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -56,6 +56,7 @@ enum print_flags CALL_START_PAGE = 0x1, CALL_END_PAGE = 0x2, WRITE_DEVMODE = 0x4, + BANDING = 0x8, };
struct print @@ -560,6 +561,24 @@ INT WINAPI Escape( HDC hdc, INT escape, INT in_count, const char *in_data, void case ABORTDOC: return AbortDoc( hdc );
+ case NEXTBAND: + { + RECT *rect = out_data; + struct print *print; + DC_ATTR *dc_attr; + + if (!(dc_attr = get_dc_attr( hdc )) || !(print = get_dc_print( dc_attr ))) break; + if (print->flags & BANDING) + { + print->flags &= ~BANDING; + SetRectEmpty( rect ); + return EndPage( hdc ); + } + print->flags |= BANDING; + SetRect( rect, 0, 0, GetDeviceCaps(hdc, HORZRES), GetDeviceCaps(hdc, VERTRES) ); + return 1; + } + case ENDDOC: return EndDoc( hdc );