From 8925fbaf610d8a56234d83bf5f96867d0d231667 Mon Sep 17 00:00:00 2001
From: maxim_productengine <mnikolenko@productengine.com>
Date: Wed, 8 May 2019 10:56:33 +0300
Subject: [PATCH] SL-10850 FIXED The "Mini-Inspector" button in the access tab
 is displaying over the Snapshot floater

---
 indra/newview/llnamelistctrl.cpp | 43 +++++++++++++++++++-------------
 1 file changed, 25 insertions(+), 18 deletions(-)

diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 62e0e2d0771..d7c5364fba0 100644
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -34,6 +34,7 @@
 #include "llcachename.h"
 #include "llfloater.h"
 #include "llfloaterreg.h"
+#include "llfloatersnapshot.h" // gSnapshotFloaterView
 #include "llinventory.h"
 #include "llscrolllistitem.h"
 #include "llscrolllistcell.h"
@@ -236,24 +237,30 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)
 
 				// Spawn at right side of cell
 				LLPointer<LLUIImage> icon = LLUI::getUIImage("Info_Small");
-				LLCoordGL pos( sticky_rect.mRight - info_icon_size, sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight())/2 );
-
-				// Should we show a group or an avatar inspector?
-				bool is_group = hit_item->isGroup();
-				bool is_experience = hit_item->isExperience();
-
-				LLToolTip::Params params;
-				params.background_visible( false );
-				params.click_callback( boost::bind(&LLNameListCtrl::showInspector, this, avatar_id, is_group, is_experience) );
-				params.delay_time(0.0f);		// spawn instantly on hover
-				params.image( icon );
-				params.message("");
-				params.padding(0);
-				params.pos(pos);
-				params.sticky_rect(sticky_rect);
-
-				LLToolTipMgr::getInstance()->show(params);
-				handled = TRUE;
+				S32 screenX = sticky_rect.mRight - info_icon_size;
+				S32 screenY = sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight()) / 2;
+				LLCoordGL pos(screenX, screenY);
+
+				LLFloater* snapshot_floatr = gSnapshotFloaterView->getFrontmostClosableFloater();
+				if (!snapshot_floatr || !snapshot_floatr->getRect().pointInRect(screenX + icon->getWidth(), screenY))
+				{
+					// Should we show a group or an avatar inspector?
+					bool is_group = hit_item->isGroup();
+					bool is_experience = hit_item->isExperience();
+
+					LLToolTip::Params params;
+					params.background_visible(false);
+					params.click_callback(boost::bind(&LLNameListCtrl::showInspector, this, avatar_id, is_group, is_experience));
+					params.delay_time(0.0f);		// spawn instantly on hover
+					params.image(icon);
+					params.message("");
+					params.padding(0);
+					params.pos(pos);
+					params.sticky_rect(sticky_rect);
+
+					LLToolTipMgr::getInstance()->show(params);
+					handled = TRUE;
+				}
 			}
 		}
 	}
-- 
GitLab