EXT-1283 [Inspectors] Avatar gear menu does not dismiss when selecting another AV
reviewed by Jamesmaster
parent
5c51eb5a34
commit
8086923d66
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue