diff options
| -rw-r--r-- | indra/llui/llbutton.cpp | 12 | ||||
| -rw-r--r-- | indra/llui/llbutton.h | 1 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 11 | 
3 files changed, 8 insertions, 16 deletions
| diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index aeedf62379..5a4f0515fc 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -120,6 +120,7 @@ LLButton::LLButton(const LLButton::Params& p)  	mFlashing( FALSE ),  	mCurGlowStrength(0.f),  	mNeedsHighlight(FALSE), +	mMouseOver(false),  	mUnselectedLabel(p.label()),  	mSelectedLabel(p.label_selected()),  	mGLFont(p.font), @@ -504,7 +505,11 @@ void LLButton::onMouseEnter(S32 x, S32 y, MASK mask)  	LLUICtrl::onMouseEnter(x, y, mask);  	if (isInEnabledChain()) +	{  		mNeedsHighlight = TRUE; +	} + +	mMouseOver = true;  }  void LLButton::onMouseLeave(S32 x, S32 y, MASK mask) @@ -512,6 +517,7 @@ void LLButton::onMouseLeave(S32 x, S32 y, MASK mask)  	LLUICtrl::onMouseLeave(x, y, mask);  	mNeedsHighlight = FALSE; +	mMouseOver = true;  }  void LLButton::setHighlight(bool b) @@ -565,14 +571,10 @@ void LLButton::draw()  	}  	// Unselected image assignments -	S32 local_mouse_x; -	S32 local_mouse_y; -	LLUI::getMousePositionLocal(this, &local_mouse_x, &local_mouse_y); -  	bool enabled = isInEnabledChain();  	bool pressed = pressed_by_keyboard  -					|| (hasMouseCapture() && pointInView(local_mouse_x, local_mouse_y)) +					|| (hasMouseCapture() && mMouseOver)  					|| mForcePressedState;  	bool selected = getToggleState(); diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h index f4af19b696..5f25084b35 100644 --- a/indra/llui/llbutton.h +++ b/indra/llui/llbutton.h @@ -356,6 +356,7 @@ private:  	BOOL						mCommitOnReturn;  	BOOL						mFadeWhenDisabled;  	bool						mForcePressedState; +	bool						mMouseOver;  	LLFrameTimer				mFlashingTimer;  }; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 00873a797c..b36af7d95b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2482,17 +2482,6 @@ void LLViewerWindow::updateUI()  	// only update mouse hover set when UI is visible (since we shouldn't send hover events to invisible UI  	if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))  	{ -		// include all ancestors of captor_view as automatically having mouse -		if (captor_view) -		{ -			LLView* captor_parent_view = captor_view->getParent(); -			while(captor_parent_view) -			{ -				mouse_hover_set.insert(captor_parent_view->getHandle()); -				captor_parent_view = captor_parent_view->getParent(); -			} -		} -  		// aggregate visible views that contain mouse cursor in display order  		LLPopupView::popup_list_t popups = mPopupView->getCurrentPopups(); | 
