Fixed major bug EXT-3852 ([BSI] Tabs in Tabbed Instant Messaging do not auto focus the text field when clicked)

-- the reason: LLTabContainer set focus to the first panel child;
-- fix: capture mouse with Input field to avoid processing of the input focus by LLTabContainer.

--HG--
branch : product-engine
meow-7.2.2
Mike Antipov 2010-01-05 16:38:18 +02:00
parent a2fb58b8db
commit 4e518758d7
1 changed files with 14 additions and 0 deletions

View File

@ -120,6 +120,12 @@ void LLIMFloater::onFocusLost()
void LLIMFloater::onFocusReceived()
{
LLIMModel::getInstance()->setActiveSessionID(mSessionID);
// return focus to the input field when active tab in the multitab container is clicked.
if (isChatMultiTab() && mInputEditor)
{
mInputEditor->setFocus(TRUE);
}
}
// virtual
@ -618,6 +624,14 @@ void LLIMFloater::onInputEditorFocusReceived( LLFocusableElement* caller, void*
//in disconnected state IM input editor should be disabled
self->mInputEditor->setEnabled(!gDisconnected);
}
// when IM Floater is a part of the multitab container LLTabContainer set focus to the first
// child on tab button's mouse up. This leads input field lost focus. See EXT-3852.
if (isChatMultiTab())
{
// So, let capture mouse tp prevent LLTabContainer set focus on the panel's first child.
gFocusMgr.setMouseCapture(self->mInputEditor);
}
}
// static