diff --git a/src/kits/interface/StringView.cpp b/src/kits/interface/StringView.cpp index 1bf2c503c9..d168908958 100644 --- a/src/kits/interface/StringView.cpp +++ b/src/kits/interface/StringView.cpp @@ -294,10 +294,14 @@ BStringView::SetText(const char* text) if ((text && fText && !strcmp(text, fText)) || (!text && !fText)) return; + float oldWidth = StringWidth(fText); + free(fText); fText = text ? strdup(text) : NULL; - InvalidateLayout(); + if (oldWidth != StringWidth(fText)) + InvalidateLayout(); + Invalidate(); }