From 6661e0fdc5becd17d438e0a1a5c47094598667fc Mon Sep 17 00:00:00 2001
From: Mnikolenko Productengine <mnikolenko@productengine.com>
Date: Wed, 28 Sep 2022 17:37:33 +0300
Subject: SL-18240 Don't disable HUD media when "Obscure MOAP" is active on
 land

---
 indra/newview/llviewermedia.cpp | 16 +++++++++++++++-
 indra/newview/llviewermedia.h   |  2 ++
 2 files changed, 17 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 84013c488f..8570c0cd5d 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -3896,7 +3896,7 @@ bool LLViewerMediaImpl::shouldShowBasedOnClass() const
 //
 bool LLViewerMediaImpl::isObscured() const
 {
-    if (getUsedInUI() || isParcelMedia()) return false;
+    if (getUsedInUI() || isParcelMedia() || isAttachedToHUD()) return false;
 
     LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
     if (!agent_parcel)
@@ -3912,6 +3912,20 @@ bool LLViewerMediaImpl::isObscured() const
     return false;
 }
 
+bool LLViewerMediaImpl::isAttachedToHUD() const
+{
+    std::list< LLVOVolume* >::const_iterator iter = mObjectList.begin();
+    std::list< LLVOVolume* >::const_iterator end = mObjectList.end();
+    for ( ; iter != end; iter++)
+    {
+        if ((*iter)->isHUDAttachment())
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
 //////////////////////////////////////////////////////////////////////////////////////////
 //
 bool LLViewerMediaImpl::isAttachedToAnotherAvatar() const
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index b95cfd4c68..f1f42afd81 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -411,6 +411,8 @@ public:
 	
 	void cancelMimeTypeProbe();
 	
+    bool isAttachedToHUD() const;
+
 	// Is this media attached to an avatar *not* self
 	bool isAttachedToAnotherAvatar() const;
 	
-- 
cgit v1.2.3