From c3b9ed68cfa988ddbbcfae36be04d4a8e69c1983 Mon Sep 17 00:00:00 2001
From: Seth ProductEngine <slitovchuk@productengine.com>
Date: Thu, 7 Oct 2010 18:54:30 +0300
Subject: [PATCH] STORM-296 FIXED Item types that can be dropped to Places
 SP->My Landmarks  restricted to landmarks and folders only.

---
 indra/newview/llplacesinventorypanel.cpp | 18 ++++++++++++++++++
 indra/newview/llplacesinventorypanel.h   |  6 ++++++
 2 files changed, 24 insertions(+)

diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 29e262199e3..408270a1a04 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -205,6 +205,24 @@ BOOL LLPlacesFolderView::handleRightMouseDown(S32 x, S32 y, MASK mask)
 	return LLFolderView::handleRightMouseDown(x, y, mask);
 }
 
+BOOL LLPlacesFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+										   EDragAndDropType cargo_type,
+										   void* cargo_data,
+										   EAcceptance* accept,
+										   std::string& tooltip_msg)
+{
+	// Don't accept anything except landmarks and folders to be dropped
+	// in places folder view. See STORM-296.
+	if (cargo_type != DAD_LANDMARK && cargo_type != DAD_CATEGORY)
+	{
+		*accept = ACCEPT_NO;
+		return FALSE;
+	}
+
+	return LLFolderView::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data,
+										   accept, tooltip_msg);
+}
+
 void LLPlacesFolderView::setupMenuHandle(LLInventoryType::EType asset_type, LLHandle<LLView> menu_handle)
 {
 	mMenuHandlesByInventoryType[asset_type] = menu_handle;
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 6641871a0bf..a44776d18b9 100644
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
@@ -70,6 +70,12 @@ class LLPlacesFolderView : public LLFolderView
 	 */
 	/*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask );
 
+	/*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+									   EDragAndDropType cargo_type,
+									   void* cargo_data,
+									   EAcceptance* accept,
+									   std::string& tooltip_msg);
+
 	void setupMenuHandle(LLInventoryType::EType asset_type, LLHandle<LLView> menu_handle);
 
 	void setParentLandmarksPanel(LLLandmarksPanel* panel)
-- 
GitLab