handler(manager, inputEvent, inputData) {
    let isTouch = (inputData.pointerType === INPUT_TYPE_TOUCH);
    let isMouse = (inputData.pointerType === INPUT_TYPE_MOUSE);

    if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {
      return;
    }

    // when we're in a touch event, record touches to  de-dupe synthetic mouse event
    if (isTouch) {
      recordTouches.call(this, inputEvent, inputData);
    } else if (isMouse && isSyntheticEvent.call(this, inputData)) {
      return;
    }

    this.callback(manager, inputEvent, inputData);
  }
@private
handle mouse and touch events
@param {Hammer} manager
@param {String} inputEvent
@param {Object} inputData