From 7953162907ed35d57e79b2b71c2093ae1f758c98 Mon Sep 17 00:00:00 2001 From: AndreyL ProductEngine Date: Mon, 25 Feb 2019 20:30:38 +0200 Subject: SL-10614 FIXED Don't hide the tear-off menu items when filtering --- indra/newview/llsearchableui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llsearchableui.cpp') diff --git a/indra/newview/llsearchableui.cpp b/indra/newview/llsearchableui.cpp index de90896548..cfe93a777e 100644 --- a/indra/newview/llsearchableui.cpp +++ b/indra/newview/llsearchableui.cpp @@ -127,7 +127,7 @@ void ll::statusbar::SearchableItem::setNotHighlighted( ) bool ll::statusbar::SearchableItem::hightlightAndHide( LLWString const &aFilter ) { - if( mMenu && !mMenu->getVisible() && !mWasHiddenBySearch ) + if ((mMenu && !mMenu->getVisible() && !mWasHiddenBySearch) || dynamic_cast(mMenu)) return false; setNotHighlighted( ); -- cgit v1.2.3 From a985e54f03ed05e1b8920da695c4533870dd3463 Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Tue, 26 Feb 2019 11:21:07 +0200 Subject: SL-10615 FIXED Main menus drop-down lists can't be opened while searching its title --- indra/newview/llsearchableui.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'indra/newview/llsearchableui.cpp') diff --git a/indra/newview/llsearchableui.cpp b/indra/newview/llsearchableui.cpp index cfe93a777e..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) || dynamic_cast(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; } -- cgit v1.2.3