Module: wine Branch: master Commit: 81bbd17c406e37ea23e8f86f95d307c0c45e2bc7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=81bbd17c406e37ea23e8f86f95...
Author: David Hedberg dhedberg@codeweavers.com Date: Sun Jan 30 20:47:55 2011 +0800
gdi32: Stay within the clipping area when painting text background.
---
dlls/gdi32/font.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c index b4aa9bc..3df3d0b 100644 --- a/dlls/gdi32/font.c +++ b/dlls/gdi32/font.c @@ -2030,7 +2030,16 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags, rc.right = x + width.x; rc.top = y - tm.tmAscent; rc.bottom = y + tm.tmDescent; - dc->funcs->pExtTextOut(dc->physDev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL); + + if(flags & ETO_CLIPPED) + { + rc.left = max(lprect->left, rc.left); + rc.right = min(lprect->right, rc.right); + rc.top = max(lprect->top, rc.top); + rc.bottom = min(lprect->bottom, rc.bottom); + } + if(rc.left < rc.right && rc.top < rc.bottom) + dc->funcs->pExtTextOut(dc->physDev, 0, 0, ETO_OPAQUE, &rc, NULL, 0, NULL); } } }