whole_func_string: function processTouchEvent(env, e) {
      var listener,
          touches = [];
      e = JSON.parse(e);
      if (e.touchSourceDevice !== 'CapacitiveKeyboard' ||
          !e.touchPoints ||
          !e.touchPoints.length) {
          return;
      }
      if (!_listeners[env.webviewId]) {
          return;
      }
      e.touchPoints.forEach(function (point) {
          touches.push({
              keyboardX: point.screenPosition.x + _shift.x,
              keyboardY: point.screenPosition.y + _shift.y,
              state: point.state,
              identifier: point.id
          });
      });
      listener = _listeners[env.webviewId];
      listener({
          type: _type,
          touches: touches,
          timeStamp: e.timeStamp
      });
  }
func_code_string: function processTouchEvent(env, e) {
      var listener,
          touches = [];
      e = JSON.parse(e);
      if (e.touchSourceDevice !== 'CapacitiveKeyboard' ||
          !e.touchPoints ||
          !e.touchPoints.length) {
          return;
      }
      if (!_listeners[env.webviewId]) {
          return;
      }
      e.touchPoints.forEach(function (point) {
          touches.push({
              keyboardX: point.screenPosition.x + _shift.x,
              keyboardY: point.screenPosition.y + _shift.y,
              state: point.state,
              identifier: point.id
          });
      });
      listener = _listeners[env.webviewId];
      listener({
          type: _type,
          touches: touches,
          timeStamp: e.timeStamp
      });
  }
func_documentation_string: /* This takes an UnhandledTouch event:
  transforms the coordinates for each point,
  and then sends that off to the application...