Commit b1448e0f authored by Ian Hickson's avatar Ian Hickson

Merge pull request #810 from Hixie/pointers

Clean up pointer handling.
parents 8083c2d4 7514ce12
......@@ -56,10 +56,12 @@ class _PointerEventConverter {
PointerDeviceKind kind = _pointerKindMap[datum.kind];
switch (datum.type) {
case PointerType.DOWN:
assert(!_pointers.containsKey(datum.pointer));
_PointerState state = _pointers.putIfAbsent(
datum.pointer,
() => new _PointerState(position)
);
assert(state.lastPosition == position);
state.startNewPointer();
state.setDown();
yield new PointerAddedEvent(
......@@ -96,13 +98,11 @@ class _PointerEventConverter {
);
break;
case PointerType.MOVE:
_PointerState state = _pointers[datum.pointer];
// If the service starts supporting hover pointers, then it must also
// start sending us ADDED and REMOVED data points. In the meantime, we
// only support "down" moves, and ignore spurious moves.
// start sending us ADDED and REMOVED data points.
// See also: https://github.com/flutter/flutter/issues/720
if (state == null)
break;
assert(_pointers.containsKey(datum.pointer));
_PointerState state = _pointers[datum.pointer];
assert(state.down);
Offset offset = position - state.lastPosition;
state.lastPosition = position;
......@@ -129,8 +129,9 @@ class _PointerEventConverter {
break;
case PointerType.UP:
case PointerType.CANCEL:
assert(_pointers.containsKey(datum.pointer));
_PointerState state = _pointers[datum.pointer];
assert(state != null);
assert(state.down);
assert(position == state.lastPosition);
state.setUp();
if (datum.type == PointerType.UP) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment