From 3d453d2da38a1fcf1c379d70fec614590da09174 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Wed, 11 Jan 2006 17:44:22 +0000 Subject: [PATCH] Fixed redrawing when alignment is center or right. Extended a comment to a bug which I can't reproduce anymore git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15912 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/BTextView/StyleBuffer.cpp | 9 +++++---- src/kits/interface/BTextView/TextView.cpp | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/kits/interface/BTextView/StyleBuffer.cpp b/src/kits/interface/BTextView/StyleBuffer.cpp index 43af2c9978..4cb6685a64 100644 --- a/src/kits/interface/BTextView/StyleBuffer.cpp +++ b/src/kits/interface/BTextView/StyleBuffer.cpp @@ -244,15 +244,15 @@ _BStyleBuffer_::SetStyleRange(int32 fromOffset, int32 toOffset, return; } - int32 styleIndex = 0; int32 offset = fromOffset; int32 runIndex = OffsetToRun(offset); + int32 styleIndex = 0; do { - STEStyleRunDesc runDesc = *fStyleRunDesc[runIndex]; + const STEStyleRunDesc runDesc = *fStyleRunDesc[runIndex]; int32 runEnd = textLen; if (runIndex < fStyleRunDesc.ItemCount() - 1) runEnd = fStyleRunDesc[runIndex + 1]->offset; - + STEStyle style = fStyleRecord[runDesc.index]->style; SetStyle(inMode, inFont, &style.font, inColor, &style.color); @@ -290,7 +290,8 @@ _BStyleBuffer_::SetStyleRange(int32 fromOffset, int32 toOffset, if (offset == runEnd) { // TODO: this hides a bug somewhere else in the code that // should probably be fixed... - printf("offset == runEnd!\n"); + // Can't reproduce this anymore... + printf("_BStyleBuffer_::SetStyleRange(): offset == runEnd!\n"); break; } offset = runEnd; diff --git a/src/kits/interface/BTextView/TextView.cpp b/src/kits/interface/BTextView/TextView.cpp index 7d88abf232..9235142b6f 100644 --- a/src/kits/interface/BTextView/TextView.cpp +++ b/src/kits/interface/BTextView/TextView.cpp @@ -3242,7 +3242,7 @@ BTextView::Refresh(int32 fromOffset, int32 toOffset, bool erase, int32 drawOffset = fromOffset; if (LineHeight(fromLine) != saveLineHeight || - newHeight < saveHeight || fromLine < saveFromLine ) + newHeight < saveHeight || fromLine < saveFromLine || fAlignment != B_ALIGN_LEFT) drawOffset = (*fLines)[fromLine]->offset; // TODO: Is it ok here ? @@ -3634,7 +3634,7 @@ BTextView::DrawLines(int32 startLine, int32 endLine, int32 startOffset, bool era BRect eraseRect = clipRect; long startEraseLine = startLine; STELine* line = (*fLines)[startLine]; - if (erase && startOffset != -1) { + if (erase && startOffset != -1 && fAlignment == B_ALIGN_LEFT) { // erase only to the right of startOffset startEraseLine++; long startErase = startOffset;