Fix "Save As doesn't enable if File Menu is torn off"
SV-2005 #close Fixfixed
This commit is contained in:
@@ -95,9 +95,26 @@ class LLFileEnableSaveAs : public view_listener_t
|
|||||||
{
|
{
|
||||||
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||||
{
|
{
|
||||||
bool new_value = gFloaterView->getFrontmost() &&
|
LLFloater* frontmost = gFloaterView->getFrontmost();
|
||||||
gFloaterView->getFrontmost()->canSaveAs();
|
if (frontmost && frontmost->hasChild("Save Preview As...", true)) // If we're the tearoff.
|
||||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
|
{
|
||||||
|
// Get the next frontmost sibling.
|
||||||
|
const LLView::child_list_const_iter_t kids_end = gFloaterView->endChild();
|
||||||
|
LLView::child_list_const_iter_t kid = std::find(gFloaterView->beginChild(), kids_end, frontmost);
|
||||||
|
if (kids_end != kid)
|
||||||
|
{
|
||||||
|
for (++kid; kid != kids_end; ++kid)
|
||||||
|
{
|
||||||
|
LLView* viewp = *kid;
|
||||||
|
if (viewp->getVisible() && !viewp->isDead())
|
||||||
|
{
|
||||||
|
frontmost = static_cast<LLFloater*>(viewp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gMenuHolder->findControl(userdata["control"].asString())->setValue(frontmost && frontmost->canSaveAs());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user