diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/lltabcontainer.cpp | 27 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 5 | 
2 files changed, 18 insertions, 14 deletions
| diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 0c43a571b8..6f895ed939 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -1483,16 +1483,22 @@ BOOL LLTabContainer::setTab(S32 which)  		for(tuple_list_t::iterator iter = mTabList.begin(); iter != mTabList.end(); ++iter)  		{  			LLTabTuple* tuple = *iter; -			if (!tuple) -				continue;  			BOOL is_selected = ( tuple == selected_tuple ); -			tuple->mButton->setUseEllipses(mUseTabEllipses); -			tuple->mButton->setHAlign(mFontHalign); -			tuple->mTabPanel->setVisible( is_selected ); -// 			tuple->mTabPanel->setFocus(is_selected); // not clear that we want to do this here. -			tuple->mButton->setToggleState( is_selected ); -			// RN: this limits tab-stops to active button only, which would require arrow keys to switch tabs -			tuple->mButton->setTabStop( is_selected ); +             +            // Although the selected tab must be complete, we may have hollow LLTabTuple tucked in the list +            if (tuple->mButton) +            { +                tuple->mButton->setUseEllipses(mUseTabEllipses); +                tuple->mButton->setHAlign(mFontHalign); +                tuple->mButton->setToggleState( is_selected ); +                // RN: this limits tab-stops to active button only, which would require arrow keys to switch tabs +                tuple->mButton->setTabStop( is_selected ); +            } +            if (tuple->mTabPanel) +            { +                tuple->mTabPanel->setVisible( is_selected ); +                //tuple->mTabPanel->setFocus(is_selected); // not clear that we want to do this here. +            }  			if (is_selected)  			{ @@ -1563,8 +1569,7 @@ BOOL LLTabContainer::selectTabByName(const std::string& name)  	LLPanel* panel = getPanelByName(name);  	if (!panel)  	{ -		llwarns << "LLTabContainer::selectTabByName(" -			<< name << ") failed" << llendl; +		llwarns << "LLTabContainer::selectTabByName(" << name << ") failed" << llendl;  		return FALSE;  	} diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index cd47a0c171..fbb3bd4a8e 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -641,8 +641,7 @@ void LLIMModel::LLIMSession::loadHistory()  LLIMModel::LLIMSession* LLIMModel::findIMSession(const LLUUID& session_id) const  { -	return get_if_there(mId2SessionMap, session_id, -		(LLIMModel::LLIMSession*) NULL); +	return get_if_there(mId2SessionMap, session_id, (LLIMModel::LLIMSession*) NULL);  }  //*TODO consider switching to using std::set instead of std::list for holding LLUUIDs across the whole code @@ -2809,7 +2808,7 @@ LLUUID LLIMMgr::addSession(  		}  	} -	bool new_session = !LLIMModel::getInstance()->findIMSession(session_id); +	bool new_session = (LLIMModel::getInstance()->findIMSession(session_id) == NULL);  	//works only for outgoing ad-hoc sessions  	if (new_session && IM_SESSION_CONFERENCE_START == dialog && ids.size()) | 
