From 5f44b76e22162ce37c714519a3d0c96b0ce24bf3 Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Mon, 28 Dec 2009 15:56:52 +0200 Subject: =?UTF-8?q?fixed=20EXT-3428=20=E2=80=9CUndocked=20IM=20well=20clos?= =?UTF-8?q?es=20after=20click=20on=20game=20area=E2=80=9D,=20made=20LLIMWe?= =?UTF-8?q?llWindow=20and=20LLNotificationWellWindow=20as=20dockable=20tra?= =?UTF-8?q?nsient=20floaters;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : product-engine --- indra/newview/llsyswellwindow.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'indra/newview/llsyswellwindow.cpp') diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index bcaefc3690..26d8338b24 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -52,7 +52,7 @@ #include "llspeakers.h" //--------------------------------------------------------------------------------- -LLSysWellWindow::LLSysWellWindow(const LLSD& key) : LLDockableFloater(NULL, key), +LLSysWellWindow::LLSysWellWindow(const LLSD& key) : LLTransientDockableFloater(NULL, true, key), mChannel(NULL), mMessageList(NULL), mSysWellChiclet(NULL), @@ -90,13 +90,13 @@ BOOL LLSysWellWindow::postBuild() // mouse up callback is not called in this case. setMouseDownCallback(boost::bind(&LLSysWellWindow::releaseNewMessagesState, this)); - return LLDockableFloater::postBuild(); + return LLTransientDockableFloater::postBuild(); } //--------------------------------------------------------------------------------- void LLSysWellWindow::setMinimized(BOOL minimize) { - LLDockableFloater::setMinimized(minimize); + LLTransientDockableFloater::setMinimized(minimize); } //--------------------------------------------------------------------------------- @@ -176,7 +176,7 @@ void LLSysWellWindow::setVisible(BOOL visible) // do not show empty window if (NULL == mMessageList || isWindowEmpty()) visible = FALSE; - LLDockableFloater::setVisible(visible); + LLTransientDockableFloater::setVisible(visible); // update notification channel state if(mChannel) @@ -191,16 +191,10 @@ void LLSysWellWindow::setVisible(BOOL visible) } } -//--------------------------------------------------------------------------------- -void LLSysWellWindow::onFocusLost() -{ - setVisible(false); -} - //--------------------------------------------------------------------------------- void LLSysWellWindow::setDocked(bool docked, bool pop_on_undock) { - LLDockableFloater::setDocked(docked, pop_on_undock); + LLTransientDockableFloater::setDocked(docked, pop_on_undock); // update notification channel state if(mChannel) -- cgit v1.2.3 From 8da7889400a9dfeeefc5b9d7f9fb72aa093ae029 Mon Sep 17 00:00:00 2001 From: Denis Serdjuk Date: Wed, 30 Dec 2009 17:37:45 +0200 Subject: fixed bug EXT-3722 New IM & Notification buttons can be clicked on, even when there's nothing to see Note: It was decided to handle an enabling of buttons from syswellwindow according to his empty state --HG-- branch : product-engine --- indra/newview/llsyswellwindow.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'indra/newview/llsyswellwindow.cpp') diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index 26d8338b24..a46ca1f8ac 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -106,15 +106,15 @@ void LLSysWellWindow::onStartUpToastClick(S32 x, S32 y, MASK mask) setVisible(TRUE); } -//--------------------------------------------------------------------------------- -LLSysWellWindow::~LLSysWellWindow() -{ +void LLSysWellWindow::setSysWellChiclet(LLSysWellChiclet* chiclet) +{ + mSysWellChiclet = chiclet; + if(mSysWellChiclet) + mSysWellChiclet->updateWidget(isWindowEmpty()); } - //--------------------------------------------------------------------------------- -void LLSysWellWindow::clear() +LLSysWellWindow::~LLSysWellWindow() { - mMessageList->clear(); } //--------------------------------------------------------------------------------- @@ -281,6 +281,7 @@ void LLSysWellWindow::handleItemAdded(EItemType added_item_type) setResizeLimits(min_width,min_height); } + mSysWellChiclet->updateWidget(isWindowEmpty()); } void LLSysWellWindow::handleItemRemoved(EItemType removed_item_type) @@ -294,6 +295,7 @@ void LLSysWellWindow::handleItemRemoved(EItemType removed_item_type) // refresh list to recalculate mSeparator position mMessageList->reshape(mMessageList->getRect().getWidth(), mMessageList->getRect().getHeight()); } + mSysWellChiclet->updateWidget(isWindowEmpty()); } bool LLSysWellWindow::anotherTypeExists(EItemType item_type) -- cgit v1.2.3