 
     @throttledDraw()
 
-    # abort selection events of the browser
+    # abort selection events of the browser (mouse only)
+    if e.preventDefault?
+      e.preventDefault()
+      e.stopPropagation()
+
+  # converts touches into old mouse event
+  _ontouchmove: (e) ->
+    @_onmousemove e.changedTouches[0]
     e.preventDefault()
     e.stopPropagation()
 

  # terminates dragging
  _cleanup: ->
    @dragStart = []

    # remove all listeners
    jbone(document.body).off('.overmove')
    jbone(document.body).off('.overup')
    jbone(document.body).off('.overout')

  # might be incompatible with some browsers
  _onmousewheel: (e) ->

    jbone(document.body).on 'mouseup.overup', => @_cleanup()
    jbone(document.body).on 'mouseout.overout', (e) => @_onmousewinout(e)

  # starts the touch mode
  _ontouchstart: (e) ->
    @dragStart = mouse.getMouseCoordsScreen e.changedTouches[0]
    @dragStartScroll = [@g.zoomer.get('_alignmentScrollLeft'), @g.zoomer.get('_alignmentScrollTop')]
    jbone(document.body).on 'touchmove.overtmove', (e) => @_ontouchmove(e)
    jbone(document.body).on 'touchend.overtend touchleave.overtleave
    touchcancel.overtcanel', => @_touchCleanup()

  # checks whether mouse moved out of the window
  # -> terminate dragging
  _onmousewinout: (e) ->
