void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view) { LLPanel* parent = dynamic_cast<LLPanel*>(getParent()); if (!parent) { llwarns << "Stand/stop flying panel parent is unset, already attached?: " << mAttached << ", new parent: " << (move_view == NULL ? "NULL" : "Move Floater") << llendl; return; } if (move_view != NULL) { llassert(move_view != parent); // sanity check // Save our original container. if (!mOriginalParent.get()) mOriginalParent = parent->getHandle(); // Attach to movement controls. parent->removeChild(this); move_view->addChild(this); // Origin must be set by movement controls. mAttached = true; } else { if (!mOriginalParent.get()) { llwarns << "Original parent of the stand / stop flying panel not found" << llendl; return; } // Detach from movement controls. parent->removeChild(this); mOriginalParent.get()->addChild(this); // update parent with self visibility (it is changed in setVisible()). EXT-4743 mOriginalParent.get()->setVisible(getVisible()); mAttached = false; updatePosition(); // don't defer until next draw() to avoid flicker } // <FS:Zi> Make sure to resize the panel to fit the new parent. Important for // proper layouting of the buttons. Skins should adapt the parent container. if(getParent()) reshape(getParent()->getRect().getWidth(),getParent()->getRect().getHeight(),FALSE); // </FS:Zi> }
void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view) { LLPanel* parent = dynamic_cast<LLPanel*>(getParent()); if (!parent) { llwarns << "Stand/stop flying panel parent is unset, already attached?: " << mAttached << ", new parent: " << (move_view == NULL ? "NULL" : "Move Floater") << llendl; return; } if (move_view != NULL) { llassert(move_view != parent); // sanity check // Save our original container. if (!mOriginalParent.get()) mOriginalParent = parent->getHandle(); // Attach to movement controls. parent->removeChild(this); move_view->addChild(this); // Origin must be set by movement controls. mAttached = true; } else { if (!mOriginalParent.get()) { llwarns << "Original parent of the stand / stop flying panel not found" << llendl; return; } // Detach from movement controls. parent->removeChild(this); mOriginalParent.get()->addChild(this); // update parent with self visibility (it is changed in setVisible()). EXT-4743 mOriginalParent.get()->setVisible(getVisible()); mAttached = false; updatePosition(); // don't defer until next draw() to avoid flicker } }