From 19e569a109deafe1e966645084ee09ed6ea428c9 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 30 Dec 2010 00:06:43 +0000 Subject: [PATCH] Stop general_textout() from trying to slice up the input clipping rectangle into smaller ones: it doesn't work any more, since the new variable-pitch code can now call general_textout() with a larger clipping rectangle than the text it's meant to be displaying. Instead, general_textout() now uses the same semantics as the next loop up in do_text_internal(): the first piece of text it displays uses the opacity setting passed in, which blanks the entire clipping rectangle if necessary, and then subsequent overlays are non-opaque. And the same clipping rectangle is used throughout. git-svn-id: svn://svn.tartarus.org/sgt/putty@9067 cda61777-01e9-0310-a592-d414129be87e --- windows/window.c | 49 ++++++++++--------------------------------------- 1 file changed, 10 insertions(+), 39 deletions(-) diff --git a/windows/window.c b/windows/window.c index 23b39d83..f721ed97 100644 --- a/windows/window.c +++ b/windows/window.c @@ -1282,15 +1282,7 @@ static void general_textout(HDC hdc, int x, int y, CONST RECT *lprc, CONST INT *lpDx, int opaque) { int i, j, xp, xn; - RECT newrc; - -#ifdef FIXME_REMOVE_BEFORE_CHECKIN -int k; -debug(("general_textout: %d,%d", x, y)); -for(k=0;kleft, lprc->top, lprc->right, lprc->bottom)); -debug(("\n")); -#endif + int bkmode = 0, got_bkmode = FALSE; xp = xn = x; @@ -1311,46 +1303,25 @@ debug(("\n")); * function. */ if (rtl) { - newrc.left = lprc->left + xp - x; - newrc.right = lprc->left + xn - x; - newrc.top = lprc->top; - newrc.bottom = lprc->bottom; -#ifdef FIXME_REMOVE_BEFORE_CHECKIN -{ -int k; -debug((" exact_textout: %d,%d", xp, y)); -for(k=0;kleft + xp - x; - newrc.right = lprc->left + xn - x; - newrc.top = lprc->top; - newrc.bottom = lprc->bottom; -#ifdef FIXME_REMOVE_BEFORE_CHECKIN -{ -int k; -debug((" ExtTextOut : %d,%d", xp, y)); -for(k=0;k= lprc->right - lprc->left); + if (got_bkmode) + SetBkMode(hdc, bkmode); } static int get_font_width(HDC hdc, const TEXTMETRIC *tm) -- 2.11.0