summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Nikolenko <maximnproductengine@lindenlab.com>2025-03-04 21:32:46 +0200
committerGitHub <noreply@github.com>2025-03-04 21:32:46 +0200
commit6ca6bdd629efd6aa01b452db4ba6c1c50d6961bf (patch)
treebaa1a32da93f61b896482263be73acdae2290eca
parent3efe5b493442f2b90ffbb571d8fa24c8ab17bf5e (diff)
#3630 fix for incorrectly pointed particle beam after dropping HUD attachment
-rw-r--r--indra/newview/llselectmgr.cpp3
-rw-r--r--indra/newview/llviewerwindow.cpp2
-rw-r--r--indra/newview/llviewerwindow.h1
3 files changed, 4 insertions, 2 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 1d4bfb0ed9..b307de787c 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -7485,7 +7485,8 @@ void LLSelectMgr::updatePointAt()
LLVector3 select_offset;
const LLPickInfo& pick = gViewerWindow->getLastPick();
LLViewerObject *click_object = pick.getObject();
- if (click_object && click_object->isSelected())
+ bool was_hud = pick.mPickHUD && !click_object->isHUDAttachment();
+ if (click_object && click_object->isSelected() && !was_hud)
{
// clicked on another object in our selection group, use that as target
select_offset.setVec(pick.mObjectOffset);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 1795d62adc..2d9f73115e 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -6178,7 +6178,7 @@ void LLPickInfo::fetchResults()
mObjectOffset = gAgentCamera.calcFocusOffset(objectp, v_intersection, mPickPt.mX, mPickPt.mY);
mObjectID = objectp->mID;
mObjectFace = (te_offset == NO_FACE) ? -1 : (S32)te_offset;
-
+ mPickHUD = objectp->isHUDAttachment();
mPosGlobal = gAgent.getPosGlobalFromAgent(v_intersection);
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index fbc2c58fbf..ac0dfa3fe4 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -133,6 +133,7 @@ public:
bool mPickParticle;
bool mPickUnselectable;
bool mPickReflectionProbe = false;
+ bool mPickHUD{ false };
void getSurfaceInfo();
private: