diff options
| author | Richard Nelson <richard@lindenlab.com> | 2011-10-06 16:48:41 -0700 | 
|---|---|---|
| committer | Richard Nelson <richard@lindenlab.com> | 2011-10-06 16:48:41 -0700 | 
| commit | 0f35bbbe9a084ef70b01a551f3262d8bf58ffb42 (patch) | |
| tree | 1674cb2c821809981950a51b68b89fe778d25681 /indra/llui | |
| parent | ddcd51beac061b79268c939a4e3ed48ec87fb907 (diff) | |
| parent | 740b3547d6b4685bcd89bb2781ccb423ab935799 (diff) | |
Automated merge with ssh://hg.lindenlab.com/richard/viewer-experience-fui
Diffstat (limited to 'indra/llui')
| -rw-r--r-- | indra/llui/lltoolbar.cpp | 20 | ||||
| -rw-r--r-- | indra/llui/lltoolbar.h | 1 | 
2 files changed, 19 insertions, 2 deletions
| diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 63a1706fe4..c34fbcd4f5 100644 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -177,6 +177,7 @@ void LLToolBar::initFromParams(const LLToolBar::Params& p)  	center_panel_p.rect = getLocalRect();  	center_panel_p.auto_resize = false;  	center_panel_p.user_resize = false; +	center_panel_p.mouse_opaque = false;  	LLLayoutPanel* center_panel = LLUICtrlFactory::create<LLLayoutPanel>(center_panel_p);  	mCenteringStack->addChild(center_panel); @@ -557,7 +558,13 @@ void LLToolBar::draw()  {  	if (mButtons.empty())  	{ -		return; +		mButtonPanel->setVisible(FALSE); +		mButtonPanel->setMouseOpaque(FALSE); +	} +	else +	{ +		mButtonPanel->setVisible(TRUE); +		mButtonPanel->setMouseOpaque(TRUE);  	}  	// Update enable/disable state and highlight state for editable toolbars @@ -741,7 +748,11 @@ BOOL LLToolBarButton::handleHover(S32 x, S32 y, MASK mask)  //	llinfos << "Merov debug: handleHover, x = " << x << ", y = " << y << ", mouse = " << hasMouseCapture() << llendl;  	BOOL handled = FALSE; -	if (hasMouseCapture() && mStartDragItemCallback && mHandleDragItemCallback) +	S32 mouse_distance_squared = (x - mMouseDownX) * (x - mMouseDownX) + (y - mMouseDownY) * (y - mMouseDownY); +	S32 drag_threshold = LLUI::sSettingGroups["config"]->getS32("DragAndDropDistanceThreshold"); +	if (mouse_distance_squared > drag_threshold * drag_threshold +		&& hasMouseCapture() &&  +		mStartDragItemCallback && mHandleDragItemCallback)  	{  		if (!mIsDragged)  		{ @@ -768,3 +779,8 @@ void LLToolBarButton::onMouseEnter(S32 x, S32 y, MASK mask)  	// Always highlight toolbar buttons, even if they are disabled  	mNeedsHighlight = TRUE;  } + +void LLToolBarButton::onMouseCaptureLost() +{ +	mIsDragged = false; +} diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index 3fbe5a7703..4fac081130 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -68,6 +68,7 @@ public:  	void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }  	void onMouseEnter(S32 x, S32 y, MASK mask); +	void onMouseCaptureLost();  private:  	LLCommandId		mId; | 
