diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index c9ee62296f..68cb5164b6 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -515,15 +515,6 @@ BOOL LLButton::handleRightMouseUp(S32 x, S32 y, MASK mask)
return TRUE;
}
-
-void LLButton::onMouseEnter(S32 x, S32 y, MASK mask)
-{
- LLUICtrl::onMouseEnter(x, y, mask);
-
- if (isInEnabledChain())
- mNeedsHighlight = TRUE;
-}
-
void LLButton::onMouseLeave(S32 x, S32 y, MASK mask)
{
LLUICtrl::onMouseLeave(x, y, mask);
@@ -538,6 +529,10 @@ void LLButton::setHighlight(bool b)
BOOL LLButton::handleHover(S32 x, S32 y, MASK mask)
{
+ if (isInEnabledChain()
+ && (!gFocusMgr.getMouseCapture() || gFocusMgr.getMouseCapture() != this))
+ mNeedsHighlight = TRUE;
+
if (!childrenHandleHover(x, y, mask))
{
if (mMouseDownTimer.getStarted())
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index 14c1d01c7e..a0a7b4e372 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -160,7 +160,6 @@ public:
virtual void draw();
/*virtual*/ BOOL postBuild();
- virtual void onMouseEnter(S32 x, S32 y, MASK mask);
virtual void onMouseLeave(S32 x, S32 y, MASK mask);
virtual void onMouseCaptureLost();
diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index 7fc6a6de8d..63a1706fe4 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -577,7 +577,7 @@ void LLToolBar::draw()
if (command && btn->mIsRunningSignal)
{
const bool button_command_running = (*btn->mIsRunningSignal)(btn, command->isRunningParameters());
- btn->setFlashing(button_command_running);
+ btn->setToggleState(button_command_running);
}
}
}
diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
index 1585166114..613dc66762 100644
--- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
@@ -12,6 +12,10 @@
bg_opaque_image_overlay="MouseGray"
background_opaque="true"/>