mirror of
https://github.com/FirestormViewer/phoenix-firestorm.git
synced 2026-08-14 00:48:30 +00:00
[FIRE-36615] Fix conversation floater becoming focused when it shouldn't be
This commit is contained in:
@@ -440,8 +440,11 @@ bool FSFloaterIMContainer::hasFloater(LLFloater* floaterp)
|
||||
|
||||
void FSFloaterIMContainer::onCloseFloater(LLUUID& id)
|
||||
{
|
||||
LLFloater* session_floater = mSessions[id];
|
||||
bool was_session_shown = session_floater && session_floater->isShown();
|
||||
|
||||
mSessions.erase(id);
|
||||
if (isShown())
|
||||
if (was_session_shown && isShown())
|
||||
{
|
||||
setFocus(true);
|
||||
}
|
||||
|
||||
@@ -792,7 +792,10 @@ void LLIMWellWindow::delIMRow(const LLUUID& sessionId)
|
||||
//But I didn't find why this happen..
|
||||
gFocusMgr.clearLastFocusForGroup(this);
|
||||
|
||||
if (mMessageList->removeItemByValue(sessionId))
|
||||
LLPanel* session_panel = mMessageList->getItemByValue(sessionId);
|
||||
bool was_session_shown = session_panel && session_panel->isInVisibleChain();
|
||||
|
||||
if (mMessageList->removeItem(session_panel))
|
||||
{
|
||||
mSysWellChiclet->updateWidget(isWindowEmpty());
|
||||
}
|
||||
@@ -811,7 +814,7 @@ void LLIMWellWindow::delIMRow(const LLUUID& sessionId)
|
||||
{
|
||||
setVisible(false);
|
||||
}
|
||||
else
|
||||
else if (was_session_shown)
|
||||
{
|
||||
setFocus(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user