diff --git a/gfx/layers/apz/util/ActiveElementManager.cpp b/gfx/layers/apz/util/ActiveElementManager.cpp index 6761ff943251..53592d5ebc6a 100644 --- a/gfx/layers/apz/util/ActiveElementManager.cpp +++ b/gfx/layers/apz/util/ActiveElementManager.cpp @@ -123,7 +123,12 @@ ActiveElementManager::HandleTouchEndEvent(bool aWasClick) // the mouse-down event generated by the click. CancelTask(); if (aWasClick) { - SetActive(mTarget); + // Scrollbar thumbs use a different mechanism for their active + // highlight (the "active" attribute), so don't set the active state + // on them because nothing will clear it. + if (!(mTarget && mTarget->IsXULElement(nsGkAtoms::thumb))) { + SetActive(mTarget); + } } else { // We might reach here if mCanBePan was false on touch-start and // so we set the element active right away. Now it turns out the