diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2019-11-12 15:40:14 +0000 |
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2019-11-12 15:40:14 +0000 |
| commit | 38d8eaba3e6e17dd39c9e9904852c14c95179783 (patch) | |
| tree | 0703ba92d765b6d324eefa0d6a0de8fc6910f8cd /indra/newview/llsearchableui.cpp | |
| parent | 63f82fc44b721b0ec437845d41b5a2055a44be68 (diff) | |
| parent | 78bdf57ad6610b34389226bf941ba736ca0c2225 (diff) | |
merge
Diffstat (limited to 'indra/newview/llsearchableui.cpp')
| -rw-r--r-- | indra/newview/llsearchableui.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/indra/newview/llsearchableui.cpp b/indra/newview/llsearchableui.cpp index de90896548..93143eb33f 100644 --- a/indra/newview/llsearchableui.cpp +++ b/indra/newview/llsearchableui.cpp @@ -125,17 +125,13 @@ void ll::statusbar::SearchableItem::setNotHighlighted( ) } } -bool ll::statusbar::SearchableItem::hightlightAndHide( LLWString const &aFilter ) +bool ll::statusbar::SearchableItem::hightlightAndHide(LLWString const &aFilter, bool hide) { - if( mMenu && !mMenu->getVisible() && !mWasHiddenBySearch ) + if ((mMenu && !mMenu->getVisible() && !mWasHiddenBySearch) || dynamic_cast<LLMenuItemTearOffGL*>(mMenu)) return false; setNotHighlighted( ); - bool bVisible(false); - for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr ) - bVisible |= (*itr)->hightlightAndHide( aFilter ); - if( aFilter.empty() ) { if( mCtrl ) @@ -143,17 +139,22 @@ bool ll::statusbar::SearchableItem::hightlightAndHide( LLWString const &aFilter return true; } + bool bHighlighted(!hide); if( mLabel.find( aFilter ) != LLWString::npos ) { if( mCtrl ) mCtrl->setHighlighted( true ); - return true; + bHighlighted = true; } - if( mCtrl && !bVisible ) + bool bVisible(false); + for (tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr) + bVisible |= (*itr)->hightlightAndHide(aFilter, !bHighlighted); + + if (mCtrl && !bVisible && !bHighlighted) { mWasHiddenBySearch = true; mMenu->setVisible(FALSE); } - return bVisible; + return bVisible || bHighlighted; } |
