diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2022-01-27 19:04:21 +0200 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2022-01-27 19:04:21 +0200 | 
| commit | 8d329f12d668139e3d26def90de526e8ee797484 (patch) | |
| tree | d20c17ae5d4d5905a6aafae76144404d43710821 | |
| parent | 3d00b4bb6c2d2e2eb2e4aaab27a75e2408dd2626 (diff) | |
SL-16669 FIXED Wrong context menu is opened for objects owned by the group
| -rw-r--r-- | indra/llui/llscrolllistctrl.h | 1 | ||||
| -rw-r--r-- | indra/newview/llnamelistctrl.cpp | 19 | ||||
| -rw-r--r-- | indra/newview/llnamelistctrl.h | 1 | 
3 files changed, 21 insertions, 0 deletions
| diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index 69ef7c5629..b7c6d1660d 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -325,6 +325,7 @@ public:  	// support right-click context menus for avatar/group lists  	enum ContextMenuType { MENU_NONE, MENU_AVATAR, MENU_GROUP };  	void setContextMenu(const ContextMenuType &menu) { mContextMenuType = menu; } +    ContextMenuType getContextMenuType() { return mContextMenuType; }  	// Overridden from LLView  	/*virtual*/ void    draw(); diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 3209d23e43..3e08f9c79f 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -271,6 +271,25 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)  	return handled;  } +// virtual +BOOL LLNameListCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask) +{ +    LLNameListItem* hit_item = dynamic_cast<LLNameListItem*>(hitItem(x, y)); +    LLFloater* floater = gFloaterView->getParentFloater(this); +    if (floater && floater->isFrontmost() && hit_item) +    { +        if(hit_item->isGroup()) +        { +            ContextMenuType prev_menu = getContextMenuType(); +            setContextMenu(MENU_GROUP); +            BOOL handled = LLScrollListCtrl::handleRightMouseDown(x, y, mask); +            setContextMenu(prev_menu); +            return handled; +        } +    } +    return LLScrollListCtrl::handleRightMouseDown(x, y, mask);     +} +  // public  void LLNameListCtrl::addGroupNameItem(const LLUUID& group_id, EAddPosition pos,  									  BOOL enabled) diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h index ef0be135e6..5dd5da5892 100644 --- a/indra/newview/llnamelistctrl.h +++ b/indra/newview/llnamelistctrl.h @@ -170,6 +170,7 @@ public:  	/*virtual*/ void updateColumns(bool force_update);  	/*virtual*/ void mouseOverHighlightNthItem( S32 index ); +    /*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);  private:  	void showInspector(const LLUUID& avatar_id, bool is_group, bool is_experience = false);  	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, std::string suffix, std::string prefix, LLHandle<LLNameListItem> item); | 
