Re: 3ea353bef3, fix minimize case to minimize and not steal focus. Also apply to group chats.

This commit is contained in:
Lirusaito
2013-01-08 08:43:55 -05:00
parent 3ea353bef3
commit b4b6186f54

View File

@@ -1137,11 +1137,17 @@ LLFloaterIMPanel* LLIMMgr::createFloater(
gFloaterView->addChild(floater); // reparent to floater view gFloaterView->addChild(floater); // reparent to floater view
LLFloater* focused_floater = gFloaterView->getFocusedFloater(); // obtain the focused floater LLFloater* focused_floater = gFloaterView->getFocusedFloater(); // obtain the focused floater
floater->open(); // make the new chat floater appear floater->open(); // make the new chat floater appear
static LLCachedControl<bool> minimize("OtherChatsTornOffAndMinimized");
if (focused_floater != NULL) // there was a focused floater if (focused_floater != NULL) // there was a focused floater
{ {
floater->setMinimized(true); // so minimize this one, for now floater->setMinimized(true); // so minimize this one, for now
focused_floater->setFocus(true); // and work around focus being removed by focusing on the last focused_floater->setFocus(true); // and work around focus being removed by focusing on the last
} }
else if (minimize)
{
floater->setFocus(false); // work around focus being granted to new floater
floater->setMinimized(true);
}
} }
mFloaters.insert(floater->getHandle()); mFloaters.insert(floater->getHandle());
return floater; return floater;
@@ -1184,6 +1190,7 @@ LLFloaterIMPanel* LLIMMgr::createFloater(
} }
else if (minimize) else if (minimize)
{ {
floater->setFocus(false); // work around focus being granted to new floater
floater->setMinimized(true); floater->setMinimized(true);
} }
} }