diff options
| author | Sergey Borushevsky <sborushevsky@productengine.com> | 2009-12-02 19:49:44 +0200 | 
|---|---|---|
| committer | Sergey Borushevsky <sborushevsky@productengine.com> | 2009-12-02 19:49:44 +0200 | 
| commit | 69a2843d5bfc3c5cb2706639eb3429369ded969b (patch) | |
| tree | f18362a91c6eecea185623f1c2652597ea5ebc01 | |
| parent | aa84c4afff251d771c7571803ccce56d1f439ae2 (diff) | |
Implemented normal task EXT-2833 ("Close" button should hide bottom bar windows)
When IM floater isn't torn off, "Close" button is disabled.
It's not hidden, since there is a hack in LLFloater::updateButton.
--HG--
branch : product-engine
| -rw-r--r-- | indra/llui/llfloater.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/llfloater.h | 2 | ||||
| -rw-r--r-- | indra/newview/llimfloater.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llimfloater.h | 1 | 
4 files changed, 15 insertions, 0 deletions
| diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 36a9e0a650..a63187678e 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1452,6 +1452,7 @@ void LLFloater::onClickTearOff(LLFloater* self)  		gFloaterView->adjustToFitScreen(self, FALSE);  		// give focus to new window to keep continuity for the user  		self->setFocus(TRUE); +		self->setTornOff(true);  	}  	else  //Attach to parent.  	{ @@ -1463,6 +1464,7 @@ void LLFloater::onClickTearOff(LLFloater* self)  			// make sure host is visible  			new_host->openFloater(new_host->getKey());  		} +		self->setTornOff(false);  	}  } diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index d7ec0aac00..b5c835cb47 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -259,6 +259,8 @@ public:  	bool            isDocked() const { return mDocked; }  	virtual void    setDocked(bool docked, bool pop_on_undock = true); +	virtual void    setTornOff(bool torn_off) {} +  	// Return a closeable floater, if any, given the current focus.  	static LLFloater* getClosableFloaterFromFocus();  diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 9b7df38c5e..9de0b1f827 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -419,6 +419,16 @@ void LLIMFloater::setDocked(bool docked, bool pop_on_undock)  	}  } +void LLIMFloater::setTornOff(bool torn_off) +{ +	// When IM Floater isn't torn off, "close" button should be hidden. +	// This call will just disables it, since there is a hack in LLFloater::updateButton, +	// which prevents hiding of close button in that case. +	setCanClose(torn_off); + +	LLTransientDockableFloater::setTornOff(torn_off); +} +  void LLIMFloater::setVisible(BOOL visible)  {  	LLNotificationsUI::LLScreenChannel* channel = dynamic_cast<LLNotificationsUI::LLScreenChannel*> diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h index 2c762c4d9a..f90bc35c34 100644 --- a/indra/newview/llimfloater.h +++ b/indra/newview/llimfloater.h @@ -63,6 +63,7 @@ public:  	// LLFloater overrides  	/*virtual*/ void onClose(bool app_quitting);  	/*virtual*/ void setDocked(bool docked, bool pop_on_undock = true); +	/*virtual*/ void setTornOff(bool torn_off);  	// Make IM conversion visible and update the message history  	static LLIMFloater* show(const LLUUID& session_id); | 
