diff options
Diffstat (limited to 'indra/llui/llflatlistview.cpp')
| -rw-r--r-- | indra/llui/llflatlistview.cpp | 19 | 
1 files changed, 16 insertions, 3 deletions
diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index 53f39766c6..5be20bd314 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -459,6 +459,7 @@ LLFlatListView::LLFlatListView(const LLFlatListView::Params& p)    , mNoItemsCommentTextbox(NULL)    , mIsConsecutiveSelection(false)    , mKeepSelectionVisibleOnReshape(p.keep_selection_visible_on_reshape) +  , mFocusOnItemClicked(true)  {      mBorderThickness = getBorderWidth(); @@ -610,7 +611,10 @@ void LLFlatListView::onItemMouseClick(item_pair_t* item_pair, MASK mask)          return;      } -    setFocus(true); +    if (mFocusOnItemClicked) +    { +        setFocus(true); +    }      bool select_item = !isSelected(item_pair); @@ -1337,14 +1341,22 @@ void LLFlatListViewEx::updateNoItemsMessage(const std::string& filter_string)      }  } -bool LLFlatListViewEx::getForceShowingUnmatchedItems() +bool LLFlatListViewEx::getForceShowingUnmatchedItems() const  {      return mForceShowingUnmatchedItems;  } -void LLFlatListViewEx::setForceShowingUnmatchedItems(bool show) +void LLFlatListViewEx::setForceShowingUnmatchedItems(bool show, bool notify_parent) +{ +    if (mForceShowingUnmatchedItems != show)  {      mForceShowingUnmatchedItems = show; +        if (!mFilterSubString.empty()) +        { +            updateNoItemsMessage(mFilterSubString); +            filterItems(false, true); +        } +    }  }  void LLFlatListViewEx::setFilterSubString(const std::string& filter_str, bool notify_parent) @@ -1412,6 +1424,7 @@ void LLFlatListViewEx::filterItems(bool re_sort, bool notify_parent)      if (visibility_changed && notify_parent)      { +        rearrangeItems();          notifyParentItemsRectChanged();      }  }  | 
