Bug 1404255 - [Pointer Event] Turn off active state or remove current pointer from active pointers when handling pointercancel. r?masayuki
MozReview-Commit-ID: 60FEfcvtxRd
--- a/dom/events/PointerEventHandler.cpp
+++ b/dom/events/PointerEventHandler.cpp
@@ -103,16 +103,20 @@ PointerEventHandler::UpdateActivePointer
case ePointerDown:
// In this case we switch pointer to active state
if (WidgetPointerEvent* pointerEvent = aEvent->AsPointerEvent()) {
sActivePointersIds->Put(pointerEvent->pointerId,
new PointerInfo(true, pointerEvent->inputSource,
pointerEvent->mIsPrimary));
}
break;
+ case ePointerCancel:
+ // pointercancel means a pointer is unlikely to continue to produce pointer
+ // events. In that case, we should turn off active state or remove the
+ // pointer from active pointers.
case ePointerUp:
// In this case we remove information about pointer or turn off active state
if (WidgetPointerEvent* pointerEvent = aEvent->AsPointerEvent()) {
if(pointerEvent->inputSource != nsIDOMMouseEvent::MOZ_SOURCE_TOUCH) {
sActivePointersIds->Put(pointerEvent->pointerId,
new PointerInfo(false,
pointerEvent->inputSource,
pointerEvent->mIsPrimary));