From bd78dbf81cfbde12ea168cee63172149446e67b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Wed, 7 May 2008 15:38:09 +0000 Subject: [PATCH] Fixed bad text antialiasing against the colored background used for input methods. Fixes #2209. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25349 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/TextView.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/kits/interface/TextView.cpp b/src/kits/interface/TextView.cpp index ea5ee1966e..e32a4ee7d3 100644 --- a/src/kits/interface/TextView.cpp +++ b/src/kits/interface/TextView.cpp @@ -3576,7 +3576,16 @@ BTextView::_DrawLine(BView *view, const int32 &lineNum, const int32 &startOffset } while ((tabChars + numTabs) < numBytes); } - if (inputRegion.CountRects() > 0) { + drawing_mode textRenderingMode = B_OP_COPY; + + if (inputRegion.CountRects() > 0 + && ((offset <= fInline->Offset() + && fInline->Offset() < offset + tabChars) + || (fInline->Offset() <= offset + && offset < fInline->Offset() + fInline->Length()))) { + + textRenderingMode = B_OP_OVER; + BRegion textRegion; GetTextRegion(offset, offset + length, &textRegion); @@ -3608,6 +3617,7 @@ BTextView::_DrawLine(BView *view, const int32 &lineNum, const int32 &startOffset const char *stringToDraw = fText->GetString(offset, &returnedBytes); + view->SetDrawingMode(textRenderingMode); view->DrawString(stringToDraw, returnedBytes); if (foundTab) { float penPos = PenLocation().x - fTextRect.left;