From 9177aea590695b1a46641d2e5a1fc85b7cbcda2c Mon Sep 17 00:00:00 2001
From: Merov Linden <merov@lindenlab.com>
Date: Tue, 9 Dec 2014 06:59:01 -0800
Subject: [PATCH] DD-289 : Fix crash when dropping first item in marketplace
 listings

---
 indra/newview/llfloatermarketplacelistings.cpp | 12 +++++++++---
 indra/newview/llfloatermarketplacelistings.h   |  2 +-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp
index 9acacbe6743..00fd87fece8 100755
--- a/indra/newview/llfloatermarketplacelistings.cpp
+++ b/indra/newview/llfloatermarketplacelistings.cpp
@@ -265,7 +265,7 @@ LLFloaterMarketplaceListings::LLFloaterMarketplaceListings(const LLSD& key)
 , mInventoryText(NULL)
 , mInventoryTitle(NULL)
 , mPanelListings(NULL)
-, mFirstViewListings(true)
+, mPanelListingsSet(false)
 {
 }
 
@@ -401,6 +401,9 @@ void LLFloaterMarketplaceListings::setPanels()
 	
 	// Get the content of the marketplace listings folder
 	fetchContents();
+    
+    // Flag that this is done
+    mPanelListingsSet = true;
 }
 
 void LLFloaterMarketplaceListings::initializeMarketPlace()
@@ -454,11 +457,10 @@ void LLFloaterMarketplaceListings::updateView()
     // Update the middle portion : tabs or messages
 	if (getFolderCount() > 0)
 	{
-        if (mFirstViewListings)
+        if (!mPanelListingsSet)
         {
             // We need to rebuild the tabs cleanly the first time we make them visible
             setPanels();
-            mFirstViewListings = false;
         }
 		mPanelListings->setVisible(TRUE);
 		mInventoryPlaceholder->setVisible(FALSE);
@@ -538,6 +540,10 @@ BOOL LLFloaterMarketplaceListings::handleDragAndDrop(S32 x, S32 y, MASK mask, BO
     {
         if (!mPanelListings->getVisible() && mRootFolderId.notNull())
         {
+            if (!mPanelListingsSet)
+            {
+                setPanels();
+            }
             LLFolderView* root_folder = mPanelListings->getRootFolder();
             handled = root_folder->handleDragAndDropToThisFolder(mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
         }
diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h
index 9fddbc645e8..8a9731dafcf 100755
--- a/indra/newview/llfloatermarketplacelistings.h
+++ b/indra/newview/llfloatermarketplacelistings.h
@@ -132,7 +132,7 @@ class LLFloaterMarketplaceListings : public LLFloater
 
 	LLUUID			mRootFolderId;
 	LLPanelMarketplaceListings * mPanelListings;
-    bool            mFirstViewListings;
+    bool            mPanelListingsSet;
 };
 
 //-----------------------------------------------------------------------------
-- 
GitLab