summaryrefslogtreecommitdiff
path: root/indra/newview/llnamelistctrl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llnamelistctrl.cpp')
-rw-r--r--indra/newview/llnamelistctrl.cpp43
1 files changed, 25 insertions, 18 deletions
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 62e0e2d077..d7c5364fba 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;
+ }
}
}
}