FIRE-21887: Select first visible item in scroll list if previously selected item gets filtered

master
Ansariel 2017-11-30 10:18:29 +01:00
parent 0df719fd99
commit 00bfcbec08
1 changed files with 12 additions and 0 deletions

View File

@ -3413,6 +3413,18 @@ void LLScrollListCtrl::setFilterString(const std::string& str)
std::transform(mFilterString.begin(), mFilterString.end(), mFilterString.begin(), ::tolower);
mIsFiltered = (mFilterColumn > -1 && !mFilterString.empty());
updateLayout();
if (mIsFiltered && getNumSelected() > 0 && isFiltered(getFirstSelected()))
{
for (item_list::iterator iter = mItemList.begin(); iter != mItemList.end(); iter++)
{
if (!isFiltered(*iter))
{
selectItem(*iter);
break;
}
}
}
}
bool LLScrollListCtrl::isFiltered(const LLScrollListItem* item) const