Alexandre Julliard : gdi32: Don' t paint the text rectangle in transparent mode unless a rectangle is explicitly specified .

Alexandre Julliard julliard at winehq.org
Tue Feb 21 14:27:50 CST 2012


Module: wine
Branch: master
Commit: 32057bf1328908aea8709d3a832cb1e0792e58ee
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=32057bf1328908aea8709d3a832cb1e0792e58ee

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Feb 21 17:20:48 2012 +0100

gdi32: Don't paint the text rectangle in transparent mode unless a rectangle is explicitly specified.

---

 dlls/gdi32/font.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index 1dc87b1..6035b57 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -2198,7 +2198,7 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags,
         if(rc.top > rc.bottom) {INT tmp = rc.top; rc.top = rc.bottom; rc.bottom = tmp;}
     }
 
-    if (flags & ETO_OPAQUE)
+    if (lprect && (flags & ETO_OPAQUE))
         physdev->funcs->pExtTextOut( physdev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL );
 
     if(count == 0)
@@ -2354,7 +2354,8 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags,
     {
         if(!((flags & ETO_CLIPPED) && (flags & ETO_OPAQUE)))
         {
-            if(!(flags & ETO_OPAQUE) || x < rc.left || x + width.x >= rc.right ||
+            if(!(flags & ETO_OPAQUE) || !lprect ||
+               x < rc.left || x + width.x >= rc.right ||
                y - tm.tmAscent < rc.top || y + tm.tmDescent >= rc.bottom)
             {
                 RECT text_box;




More information about the wine-cvs mailing list