EXT-1283 [Inspectors] Avatar gear menu does not dismiss when selecting another AV

reviewed by James
master
Leyla Farazha 2009-10-06 22:55:01 +00:00
parent 5c51eb5a34
commit 8086923d66
5 changed files with 32 additions and 1 deletions

View File

@ -83,6 +83,12 @@ void LLMenuButton::toggleMenu()
}
void LLMenuButton::hideMenu()
{
mMenu->setVisible(FALSE);
}
BOOL LLMenuButton::handleKeyHere(KEY key, MASK mask )
{
if( KEY_RETURN == key && mask == MASK_NONE && !gKeyboard->getKeyRepeated(key))

View File

@ -54,6 +54,7 @@ public:
/*virtual*/ void draw();
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask );
void hideMenu();
protected:
friend class LLUICtrlFactory;

View File

@ -38,6 +38,7 @@
// Library includes
#include "lltextbox.h"
#include "lliconctrl.h"
#include "llmenugl.h" // hideMenus()
#include "llui.h" // positionViewNearMouse()
#include "llwindow.h"
@ -94,7 +95,16 @@ BOOL LLToolTipView::handleHover(S32 x, S32 y, MASK mask)
BOOL LLToolTipView::handleMouseDown(S32 x, S32 y, MASK mask)
{
LLToolTipMgr::instance().blockToolTips();
return LLView::handleMouseDown(x, y, mask);
if (LLView::handleMouseDown(x, y, mask))
{
// If we are handling the mouse event menu holder
// won't get a chance to close menus so do this here
LLMenuGL::sMenuContainer->hideMenus();
return TRUE;
}
return FALSE;
}
BOOL LLToolTipView::handleMiddleMouseDown(S32 x, S32 y, MASK mask)

View File

@ -51,6 +51,7 @@
#include "llcontrol.h" // LLCachedControl
#include "llfloater.h"
#include "llfloaterreg.h"
#include "llmenubutton.h"
#include "lltooltip.h" // positionViewNearMouse()
#include "lluictrl.h"
@ -80,6 +81,9 @@ public:
// Because floater is single instance, need to re-parse data on each spawn
// (for example, inspector about same avatar but in different position)
/*virtual*/ void onOpen(const LLSD& avatar_id);
// When closing they should close their gear menu
/*virtual*/ void onClose();
// Inspectors close themselves when they lose focus
/*virtual*/ void onFocusLost();
@ -224,6 +228,8 @@ BOOL LLInspectAvatar::postBuild(void)
getChild<LLUICtrl>("volume_slider")->setCommitCallback(
boost::bind(&LLInspectAvatar::onVolumeChange, this, _2));
mCloseSignal.connect(boost::bind(&LLInspectAvatar::onClose, this));
return TRUE;
}
@ -288,6 +294,11 @@ void LLInspectAvatar::onOpen(const LLSD& data)
updateVolumeSlider();
}
void LLInspectAvatar::onClose()
{
getChild<LLMenuButton>("gear_btn")->hideMenu();
}
//virtual
void LLInspectAvatar::onFocusLost()
{

View File

@ -46,6 +46,7 @@
#include "llcontrol.h" // LLCachedControl
#include "llfloater.h"
#include "llfloaterreg.h"
#include "llmenubutton.h"
#include "llresmgr.h" // getMonetaryString
#include "llsafehandle.h"
#include "lltextbox.h" // for description truncation
@ -254,6 +255,8 @@ void LLInspectObject::onClose()
{
// Release selection to deselect
mObjectSelection = NULL;
getChild<LLMenuButton>("gear_btn")->hideMenu();
}
//virtual