diff --git a/src/kits/interface/TextView.cpp b/src/kits/interface/TextView.cpp index 29d60590d6..25a4b315bb 100644 --- a/src/kits/interface/TextView.cpp +++ b/src/kits/interface/TextView.cpp @@ -2799,17 +2799,22 @@ BTextView::_ValidateLayoutData() // compute our preferred size fLayoutData->preferred.height = fTextRect.Height() + fLayoutData->topInset + fLayoutData->bottomInset; - float maxWidth = 0; - for (int i = 0; i < fLines->NumLines(); i++) { - float width = LineWidth(0); - if (maxWidth < width) - maxWidth = width; - } - if (maxWidth < min.width) - maxWidth = min.width; - fLayoutData->preferred.width - = maxWidth + fLayoutData->leftInset + fLayoutData->rightInset; + if (fWrap) + fLayoutData->preferred.width = min.width + 5 * lineHeight; + else { + float maxWidth = 0; + for (int i = 0; i < fLines->NumLines(); i++) { + float width = LineWidth(0); + if (maxWidth < width) + maxWidth = width; + } + if (maxWidth < min.width) + maxWidth = min.width; + + fLayoutData->preferred.width + = maxWidth + fLayoutData->leftInset + fLayoutData->rightInset; + } fLayoutData->valid = true;