diff --git a/patches/win32u-NtGdiExtTextOutW-rotation/0002-win32u-NtGdiExtTextOutW-should-translate-x-y-from-lo.patch b/patches/win32u-NtGdiExtTextOutW-rotation/0002-win32u-NtGdiExtTextOutW-should-translate-x-y-from-lo.patch index 4292c2c9..1a5e7f96 100644 --- a/patches/win32u-NtGdiExtTextOutW-rotation/0002-win32u-NtGdiExtTextOutW-should-translate-x-y-from-lo.patch +++ b/patches/win32u-NtGdiExtTextOutW-rotation/0002-win32u-NtGdiExtTextOutW-should-translate-x-y-from-lo.patch @@ -1,18 +1,18 @@ -From 33d132644a7398e4a3a17f1745dcb626ea6694af Mon Sep 17 00:00:00 2001 +From 91a8656c92eafa768869c83f4b1242ab9fa7b8f3 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 22 Nov 2023 11:51:23 +0300 -Subject: [PATCH 2/2] win32u: NtGdiExtTextOutW() should translate x,y from - logical to device units at the last step. +Subject: [PATCH] win32u: NtGdiExtTextOutW() should translate x,y from logical + to device units at the last step. Bug: https://bugs.winehq.org/show_bug.cgi?id=33190 Signed-off-by: Dmitry Timoshkov --- - dlls/win32u/font.c | 14 ++++++-------- - 1 file changed, 6 insertions(+), 8 deletions(-) + dlls/win32u/font.c | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c -index 8fbd8dc3f01..f32becbe669 100644 +index 8fbd8dc3f01..c57bedb2a3a 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -5972,12 +5972,6 @@ BOOL WINAPI NtGdiExtTextOutW( HDC hdc, INT x, INT y, UINT flags, const RECT *lpr @@ -37,7 +37,14 @@ index 8fbd8dc3f01..f32becbe669 100644 switch( align & (TA_LEFT | TA_RIGHT | TA_CENTER) ) { case TA_LEFT: -@@ -6143,6 +6135,12 @@ BOOL WINAPI NtGdiExtTextOutW( HDC hdc, INT x, INT y, UINT flags, const RECT *lpr +@@ -6137,12 +6129,19 @@ BOOL WINAPI NtGdiExtTextOutW( HDC hdc, INT x, INT y, UINT flags, const RECT *lpr + text_box.bottom = y + tm.tmDescent; + + if (flags & ETO_CLIPPED) intersect_rect( &text_box, &text_box, &rc ); ++ lp_to_dp(dc, (POINT *)&text_box, 2); + if (!IsRectEmpty( &text_box )) + physdev->funcs->pExtTextOut( physdev, 0, 0, ETO_OPAQUE, &text_box, NULL, 0, NULL ); + } } } @@ -51,5 +58,5 @@ index 8fbd8dc3f01..f32becbe669 100644 str, count, (INT*)deltas ); -- -2.46.0 +2.45.2