function teardropTouchMoveHandler(e) {
		const { clientX, clientY } = e.touches[0];
		const { lineHeight } = renderer;
		const { start, end } = editor.selection.getRange();
		let y = clientY - lineHeight * 1.8;
		let x = clientX;

		if (timeTouchStart) {
			timeTouchStart = null;

			// Prevents accidental touchmove
			if (diffX < threshold && diffY < threshold) return;

			const diffX = Math.abs(lastX - clientX);
			const diffY = Math.abs(lastY - clientY);
			const timeDiff = Date.now() - timeTouchStart;

			// Prevents accidental touchmove or highly sensitive touchmove
			if (timeDiff < 50) return;
			return;
		}

		if ($activeTeardrop === $cursor) {
			const { row, column } = renderer.screenToTextCoordinates(x, y);
			editor.gotoLine(row + 1, column);
		} else if ($activeTeardrop === $start) {
			x = clientX + teardropSize;

			const { pageX, pageY } = renderer.textToScreenCoordinates(end);
			if (pageY <= y) {
				y = pageY;
			}

			if (pageY <= y && pageX < x) {
				x = pageX;
			}

			let { row, column } = renderer.screenToTextCoordinates(x, y);

			if (column === end.column) {
				--column;
			}

			editor.selection.setSelectionAnchor(row, column);
			positionEnd();
		} else {
			const { pageX, pageY } = renderer.textToScreenCoordinates(start);
			if (pageY >= y) {
				y = pageY;
			}

			if (pageY >= y && pageX > x) {
				x = pageX;
			}

			let { row, column } = renderer.screenToTextCoordinates(x, y);

			// if (column === start.column) {
			// 	++column;
			// }

			editor.selection.moveCursorToPosition({ row, column });
			positionStart();
		}

		clearTimeout(teardropMoveTimeout);
		const parent = $el.getBoundingClientRect();
		let deltaX = 0;
		if (clientY < parent.top) deltaX = -lineHeight;
		if (clientY > parent.bottom) deltaX = lineHeight;

		if (deltaX) {
			teardropMoveTimeout = setTimeout(() => {
				const top = editor.session.getScrollTop();
				editor.session.setScrollTop(top + deltaX);
				if (teardropTouchEnded) return;
				teardropTouchMoveHandler(e);
			}, 100);
		}

		const [left, top] = relativePosition(clientX, clientY - lineHeight);
		$activeTeardrop.style.left = `${left}px`;
		$activeTeardrop.style.top = `${top}px`;
	}
Touch event handler for teardrop
@param {Event} e