diff --git a/src/apps/expander/ExpanderWindow.cpp b/src/apps/expander/ExpanderWindow.cpp index 27bce4ec9f..240d9c0917 100644 --- a/src/apps/expander/ExpanderWindow.cpp +++ b/src/apps/expander/ExpanderWindow.cpp @@ -365,9 +365,8 @@ ExpanderWindow::MessageReceived(BMessage *msg) // expand the window if we need... float delta = fListingText->StringWidth(string.String()) - fListingText->Frame().Width(); - if (delta > 0) { - ResizeTo(Frame().Width() + delta, - Frame().Height()); + if (delta > fLargestDelta) { + fLargestDelta = delta; } fListingText->Insert(string.String()); } @@ -385,6 +384,9 @@ ExpanderWindow::MessageReceived(BMessage *msg) } else if (fListingStarted){ fSourceChanged = false; StopListing(); + if (fLargestDelta > 0.0f) + ResizeBy(fLargestDelta, 0.0f); + fLargestDelta = 0.0f; } else fStatusView->SetText(""); break; @@ -597,6 +599,8 @@ ExpanderWindow::StartListing() { _UpdateWindowSize(true); + fLargestDelta = 0.0f; + if (fListingScroll->IsHidden()) fListingScroll->Show(); diff --git a/src/apps/expander/ExpanderWindow.h b/src/apps/expander/ExpanderWindow.h index 96b34091ee..ebee5ce1e3 100644 --- a/src/apps/expander/ExpanderWindow.h +++ b/src/apps/expander/ExpanderWindow.h @@ -77,6 +77,8 @@ class ExpanderWindow : public BWindow { BMessage fSettings; ExpanderPreferences *fPreferences; ExpanderRules fRules; + + float fLargestDelta; }; #endif /* EXPANDER_WINDOW_H */