In the touch model, a multi-touch event is modelled as a single event whereas in the pointer model each pointer touch is modelled as a separate event with a distinct pointer ID. This led to problems as the first touch of a multi-touch event is not recognised as being part of a multi-touch event and therefore could lead to a mixture e.g. drag/pinch-zoom. This commit modifies the drag handler such that the pointerId of touch events will be recorded for the first touch and subsequent touches with a different pointerId (e.g. other fingers in a multi-touch event) can be ignored.
IE11 (and potentially soon other browsers) implement the pointer event model using according to the W3C specification and not the MS-prefixed events as implemented in IE10. This commit fixes the mapping of browser pointer* events relating to touch (down, move, up) to the touch* events (start, move, end) as used in OpenLayers. The differentiation of pointer events with pointer type touch is also corrected to reflect the W3C specification and current usage.
For (MS)Pointer-model browsers we register additional event handlers for four pointer* events which need to be considered when comparing the number of registered handlers