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 /indra | |
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
Diffstat (limited to 'indra')
-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); |