From 927bc248a345908efb52355296f9fb32eeb89325 Mon Sep 17 00:00:00 2001 From: leavengood Date: Wed, 29 Dec 2010 22:08:08 +0000 Subject: [PATCH] Only use the scrollview if it is needed (to avoid the problem of a useless disabled scrollbar.) git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@562 94f232f2-1747-11df-bad5-a5bfde151594 --- .../AutoCompleterDefaultImpl.cpp | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/apps/webpositive/autocompletion/AutoCompleterDefaultImpl.cpp b/src/apps/webpositive/autocompletion/AutoCompleterDefaultImpl.cpp index 4bfd556175..0808239ef3 100644 --- a/src/apps/webpositive/autocompletion/AutoCompleterDefaultImpl.cpp +++ b/src/apps/webpositive/autocompletion/AutoCompleterDefaultImpl.cpp @@ -374,12 +374,18 @@ BDefaultChoiceView::ShowChoices(BAutoCompleter::CompletionStyle* completer) ); } - BScrollView *scrollView = new BScrollView("", fListView, B_FOLLOW_NONE, 0, false, true, B_NO_BORDER); + BScrollView *scrollView = NULL; + if (count > fMaxVisibleChoices) { + scrollView = new BScrollView("", fListView, B_FOLLOW_NONE, 0, false, true, B_NO_BORDER); + } fWindow = new BWindow(BRect(0, 0, 100, 100), "", B_BORDERED_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, B_NOT_MOVABLE | B_WILL_ACCEPT_FIRST_CLICK | B_AVOID_FOCUS | B_ASYNCHRONOUS_CONTROLS); - fWindow->AddChild(scrollView); + if (scrollView != NULL) + fWindow->AddChild(scrollView); + else + fWindow->AddChild(fListView); int32 visibleCount = min_c(count, fMaxVisibleChoices); float listHeight = fListView->ItemFrame(visibleCount - 1).bottom + 1; @@ -393,13 +399,18 @@ BDefaultChoiceView::ShowChoices(BAutoCompleter::CompletionStyle* completer) else listRect.OffsetTo(pvRect.left, pvRect.top - listHeight); - // Moving here to cut off the scrollbar top - scrollView->MoveTo(0, -1); - // Adding the 1 and 2 to cut-off the scroll-bar top, right and bottom - scrollView->ResizeTo(listRect.Width() + 1, listRect.Height() + 2); - // Move here to compensate for the above - fListView->MoveTo(0, 1); - fListView->ResizeTo(listRect.Width() - B_V_SCROLL_BAR_WIDTH, listRect.Height()); + if (scrollView != NULL) { + // Moving here to cut off the scrollbar top + scrollView->MoveTo(0, -1); + // Adding the 1 and 2 to cut-off the scroll-bar top, right and bottom + scrollView->ResizeTo(listRect.Width() + 1, listRect.Height() + 2); + // Move here to compensate for the above + fListView->MoveTo(0, 1); + fListView->ResizeTo(listRect.Width() - B_V_SCROLL_BAR_WIDTH, listRect.Height()); + } else { + fListView->MoveTo(0, 0); + fListView->ResizeTo(listRect.Width(), listRect.Height()); + } fWindow->MoveTo(listRect.left, listRect.top); fWindow->ResizeTo(listRect.Width(), listRect.Height()); fWindow->Show();