diff options
| author | Leyla Farazha <leyla@lindenlab.com> | 2010-01-05 15:49:22 -0800 | 
|---|---|---|
| committer | Leyla Farazha <leyla@lindenlab.com> | 2010-01-05 15:49:22 -0800 | 
| commit | 0b0372a3037b9fa1f411180232644b6c9f373319 (patch) | |
| tree | 9c366a4a20846227e67b9550f352b2dd06452938 | |
| parent | 53abe3c7802b8c8579ce868b4ecb05d9ebdd20ef (diff) | |
EXT-3900 	 [BSI] Inspector floater fades while inspectors context menu is still active
reviewed by Richard
| -rw-r--r-- | indra/llui/llmenubutton.h | 1 | ||||
| -rw-r--r-- | indra/newview/llinspect.h | 2 | ||||
| -rw-r--r-- | indra/newview/llinspectavatar.cpp | 19 | ||||
| -rw-r--r-- | indra/newview/llinspectobject.cpp | 15 | 
4 files changed, 33 insertions, 4 deletions
diff --git a/indra/llui/llmenubutton.h b/indra/llui/llmenubutton.h index 02eb9d3806..d0e99d9f40 100644 --- a/indra/llui/llmenubutton.h +++ b/indra/llui/llmenubutton.h @@ -55,6 +55,7 @@ public:  	/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);  	/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask );  	void hideMenu(); +	LLMenuGL* getMenu() { return mMenu; }  protected:  	friend class LLUICtrlFactory; diff --git a/indra/newview/llinspect.h b/indra/newview/llinspect.h index 731e99534b..a1cb9cd71c 100644 --- a/indra/newview/llinspect.h +++ b/indra/newview/llinspect.h @@ -55,7 +55,7 @@ public:  	/// Inspectors close themselves when they lose focus  	/*virtual*/ void onFocusLost(); -private: +protected:  	LLFrameTimer		mCloseTimer;  	LLFrameTimer		mOpenTimer;  }; diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index dae980feb1..0e6bbd318e 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -93,6 +93,10 @@ public:  	// Update view based on information from avatar properties processor  	void processAvatarData(LLAvatarData* data); +	// override the inspector mouse leave so timer is only paused if  +	// gear menu is not open +	/* virtual */ void onMouseLeave(S32 x, S32 y, MASK mask); +	  private:  	// Make network requests for all the data to display in this view.  	// Used on construction and if avatar id changes. @@ -257,8 +261,6 @@ BOOL LLInspectAvatar::postBuild(void)  } - -  // Multiple calls to showInstance("inspect_avatar", foo) will provide different  // LLSD for foo, which we will catch here.  //virtual @@ -382,6 +384,19 @@ void LLInspectAvatar::processAvatarData(LLAvatarData* data)  	mPropertiesRequest = NULL;  } +// For the avatar inspector, we only want to unpause the fade timer  +// if neither the gear menu or self gear menu are open +void LLInspectAvatar::onMouseLeave(S32 x, S32 y, MASK mask) +{ +	LLMenuGL* gear_menu = getChild<LLMenuButton>("gear_btn")->getMenu(); +	LLMenuGL* gear_menu_self = getChild<LLMenuButton>("gear_self_btn")->getMenu(); +	if ( !(gear_menu && gear_menu->getVisible()) && +		 !(gear_menu_self && gear_menu_self->getVisible())) +	{ +		mOpenTimer.unpause(); +	} +} +  void LLInspectAvatar::updateModeratorPanel()  {  	bool enable_moderator_panel = false; diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp index cb35a287e9..3be9d5fb0e 100644 --- a/indra/newview/llinspectobject.cpp +++ b/indra/newview/llinspectobject.cpp @@ -82,6 +82,10 @@ public:  	// Release the selection and do other cleanup  	/*virtual*/ void onClose(bool app_quitting); +	// override the inspector mouse leave so timer is only paused if  +	// gear menu is not open +	/* virtual */ void onMouseLeave(S32 x, S32 y, MASK mask); +	  private:  	// Refresh displayed data with information from selection manager  	void update(); @@ -181,7 +185,6 @@ BOOL LLInspectObject::postBuild(void)  	return TRUE;  } -  // Multiple calls to showInstance("inspect_avatar", foo) will provide different  // LLSD for foo, which we will catch here.  //virtual @@ -562,6 +565,16 @@ void LLInspectObject::updateSecureBrowsing()  	getChild<LLUICtrl>("secure_browsing")->setVisible(is_secure_browsing);  } +// For the object inspector, only unpause the fade timer  +// if the gear menu is not open +void LLInspectObject::onMouseLeave(S32 x, S32 y, MASK mask) +{ +	LLMenuGL* gear_menu = getChild<LLMenuButton>("gear_btn")->getMenu(); +	if ( !(gear_menu && gear_menu->getVisible())) +	{ +		mOpenTimer.unpause(); +	} +}  void LLInspectObject::onClickBuy()  {  | 
