diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpanelplaces.h | 4 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 14 | 
2 files changed, 17 insertions, 1 deletions
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h index 5ee8704992..b134cf0cba 100644 --- a/indra/newview/llpanelplaces.h +++ b/indra/newview/llpanelplaces.h @@ -71,6 +71,10 @@ public:  	void setItem(LLInventoryItem* item); +	LLInventoryItem* getItem() { return mItem; } + +	std::string getPlaceInfoType() { return mPlaceInfoType; } +  private:  	void onLandmarkLoaded(LLLandmark* landmark);  	void onFilterEdit(const std::string& search_string, bool force_filter); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 8d7718c5dc..2e4e1cf114 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -904,7 +904,19 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f  						LLPanelPlaces *places_panel = dynamic_cast<LLPanelPlaces*>(LLSideTray::getInstance()->showPanel("panel_places", LLSD()));  						if (places_panel)  						{ -							places_panel->setItem(item); +							// we are creating a landmark +							if("create_landmark" == places_panel->getPlaceInfoType() && !places_panel->getItem()) +							{ +								places_panel->setItem(item); +							} +							// we are opening a group notice attachment +							else +							{ +								LLSD args; +								args["type"] = "landmark"; +								args["id"] = item_id; +								LLSideTray::getInstance()->showPanel("panel_places", args); +							}  						}  					}  				}  | 
