diff options
| author | Gilbert Gonzales <gilbert@lindenlab.com> | 2013-03-08 18:34:40 -0800 | 
|---|---|---|
| committer | Gilbert Gonzales <gilbert@lindenlab.com> | 2013-03-08 18:34:40 -0800 | 
| commit | 24e650b4039d3b3515109fa9e271abfa2a2ebd6a (patch) | |
| tree | c33d13240f51b3bf7609d2b2cb7189af7f2a627e | |
| parent | 014376b49a1e6bf41fa8b0f1b36c0c02fca3096e (diff) | |
CHUI-835 (ctrl-h does not select nearby chat conversation in list): Modified setVisibleAndFrontMost() to now take a arguement for the key that was pressed (if one was pressed). This allows the floater to select the converation line item when becoming visible/frontmost.
| -rw-r--r-- | indra/llui/llfloater.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/llfloater.h | 2 | ||||
| -rw-r--r-- | indra/llui/llfloaterreg.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llfloaterimnearbychat.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llfloaterimnearbychat.h | 1 | 
5 files changed, 19 insertions, 7 deletions
| diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 27dd7f5b32..09e27a264a 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1621,7 +1621,7 @@ void LLFloater::bringToFront( S32 x, S32 y )  // virtual -void LLFloater::setVisibleAndFrontmost(BOOL take_focus) +void LLFloater::setVisibleAndFrontmost(BOOL take_focus, const LLSD& key)  {  	LLMultiFloater* hostp = getHost();  	if (hostp) diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index cb5bf28db3..4dba1e645f 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -305,7 +305,7 @@ public:  	/*virtual*/ void handleVisibilityChange ( BOOL new_visibility ); // do not override  	void			setFrontmost(BOOL take_focus = TRUE); -    virtual void	setVisibleAndFrontmost(BOOL take_focus=TRUE);     +    virtual void	setVisibleAndFrontmost(BOOL take_focus=TRUE, const LLSD& key = LLSD());      	// Defaults to false.  	virtual BOOL	canSaveAs() const { return FALSE; } diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp index c20d863612..1cdddf0d5b 100644 --- a/indra/llui/llfloaterreg.cpp +++ b/indra/llui/llfloaterreg.cpp @@ -488,12 +488,12 @@ void LLFloaterReg::toggleInstanceOrBringToFront(const LLSD& sdname, const LLSD&  		{  			host->setMinimized(FALSE);  			instance->openFloater(key); -			instance->setVisibleAndFrontmost(); +			instance->setVisibleAndFrontmost(true, key);  		}  		else if (!instance->getVisible())  		{  			instance->openFloater(key); -			instance->setVisibleAndFrontmost(); +			instance->setVisibleAndFrontmost(true, key);  			instance->setFocus(TRUE);  		}  		else @@ -506,16 +506,16 @@ void LLFloaterReg::toggleInstanceOrBringToFront(const LLSD& sdname, const LLSD&  		if (instance->isMinimized())  		{  			instance->setMinimized(FALSE); -			instance->setVisibleAndFrontmost(); +			instance->setVisibleAndFrontmost(true, key);  		}  		else if (!instance->isShown())  		{  			instance->openFloater(key); -			instance->setVisibleAndFrontmost(); +			instance->setVisibleAndFrontmost(true, key);  		}  		else if (!instance->isFrontmost())  		{ -			instance->setVisibleAndFrontmost(); +			instance->setVisibleAndFrontmost(true, key);  		}  		else  		{ diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index dfaf4bbdd6..cfee5001a6 100644 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -257,6 +257,17 @@ void LLFloaterIMNearbyChat::setVisible(BOOL visible)  	}  } + +void LLFloaterIMNearbyChat::setVisibleAndFrontmost(BOOL take_focus, const LLSD& key) +{ +	LLFloaterIMSessionTab::setVisibleAndFrontmost(take_focus, key); + +	if(!isTornOff() && matchesKey(key)) +	{ +		LLFloaterIMContainer::getInstance()->selectConversationPair(mSessionID, true, false); +	} +} +  // virtual  void LLFloaterIMNearbyChat::onTearOffClicked()  { diff --git a/indra/newview/llfloaterimnearbychat.h b/indra/newview/llfloaterimnearbychat.h index 4ad37eb0c7..05b48cccb0 100644 --- a/indra/newview/llfloaterimnearbychat.h +++ b/indra/newview/llfloaterimnearbychat.h @@ -54,6 +54,7 @@ public:  	/*virtual*/ void onOpen(const LLSD& key);  	/*virtual*/ void onClose(bool app_quitting);  	/*virtual*/ void setVisible(BOOL visible); +	/*virtual*/ void setVisibleAndFrontmost(BOOL take_focus=TRUE, const LLSD& key = LLSD());  	/*virtual*/ void closeHostedFloater();  	void loadHistory(); | 
