Commits

Vadim Savchuk  committed 2c1fb6b

STORM-690 FIXED Underlying panels were visible in undocked sidepanels.

By the way, fixed losing focus when switching between panels in Me and Places SP (which made the floater semi-transparent).

  • Participants
  • Parent commits 33ccd6c

Comments (0)

Files changed (3)

File indra/newview/llpanellandmarkinfo.cpp

 
 	populateFoldersList();
 
+	// Prevent the floater from losing focus (if the sidepanel is undocked).
+	setFocus(TRUE);
+
 	LLPanelPlaceInfo::setInfoType(type);
 }
 
 		// when it was enabled/disabled we set the text once again.
 		mNotesEditor->setText(mNotesEditor->getText());
 	}
+
+	// Prevent the floater from losing focus (if the sidepanel is undocked).
+	setFocus(TRUE);
 }
 
 const std::string& LLPanelLandmarkInfo::getLandmarkTitle() const

File indra/newview/llpanelpicks.cpp

 
 void LLPanelPicks::onPanelPickClose(LLPanel* panel)
 {
-	panel->setVisible(FALSE);
+	getProfilePanel()->closePanel(panel);
 }
 
 void LLPanelPicks::onPanelPickSave(LLPanel* panel)

File indra/newview/llpanelprofile.cpp

 
 void LLPanelProfile::openPanel(LLPanel* panel, const LLSD& params)
 {
+	// Hide currently visible panel (STORM-690).
+	setAllChildrenVisible(FALSE);
+
+	// Add the panel or bring it to front.
 	if (panel->getParent() != this)
 	{
 		addChild(panel);
 	if (panel->getParent() == this) 
 	{
 		removeChild(panel);
+
+		// Make the underlying panel visible.
+		const child_list_t* child_list = getChildList();
+		if (child_list->size() > 0)
+		{
+			child_list->front()->setVisible(TRUE);
+			child_list->front()->setFocus(TRUE); // prevent losing focus by the floater
+		}
+		else
+		{
+			llwarns << "No underlying panel to make visible." << llendl;
+		}
 	}
 }