Bug 1367765 - Do not scroll-to-click on touchstart if touch point is over thumb. r=rhunt
This matches the behaviour of mouse events over a scroll thumb.
MozReview-Commit-ID: ArLzC6JXfos
--- a/layout/xul/nsSliderFrame.cpp
+++ b/layout/xul/nsSliderFrame.cpp
@@ -1338,31 +1338,31 @@ nsSliderFrame::ShouldScrollForEvent(Widg
bool
nsSliderFrame::ShouldScrollToClickForEvent(WidgetGUIEvent* aEvent)
{
if (!ShouldScrollForEvent(aEvent)) {
return false;
}
- if (aEvent->mMessage == eTouchStart) {
- return GetScrollToClick();
- }
-
- if (aEvent->mMessage != eMouseDown) {
+ if (aEvent->mMessage != eMouseDown && aEvent->mMessage != eTouchStart) {
return false;
}
#if defined(XP_MACOSX) || defined(MOZ_WIDGET_GTK)
// On Mac and Linux, clicking the scrollbar thumb should never scroll to click.
if (IsEventOverThumb(aEvent)) {
return false;
}
#endif
+ if (aEvent->mMessage == eTouchStart) {
+ return GetScrollToClick();
+ }
+
WidgetMouseEvent* mouseEvent = aEvent->AsMouseEvent();
if (mouseEvent->button == WidgetMouseEvent::eLeftButton) {
#ifdef XP_MACOSX
bool invertPref = mouseEvent->IsAlt();
#else
bool invertPref = mouseEvent->IsShift();
#endif
return GetScrollToClick() != invertPref;