Skip to content
Permalink
Browse files

End multi touch session on window leave

  • Loading branch information
Koen Bok
Koen Bok committed Feb 1, 2016
1 parent 89aad75 commit 026e00622fa66ffb3c426148a29224ecebccb4e7
Showing with 47 additions and 32 deletions.
  1. +47 −32 framer/Extras/TouchEmulator.coffee
@@ -54,6 +54,7 @@ class TouchEmulator extends BaseClass
@wrap(document).addEventListener("mousedown", @mousedown, true)
@wrap(document).addEventListener("mousemove", @mousemovePosition, true)
@wrap(document).addEventListener("keydown", @keydown, true)
@wrap(document).addEventListener("mouseout", @mouseout, true)

@isMouseDown = false
@isPinchKeyDown = false
@@ -68,28 +69,8 @@ class TouchEmulator extends BaseClass
image: @touchPointerImage
opacity: 0

showTouchCursor: ->
@touchPointLayer.animateStop()
@touchPointLayer.midX = @point.x
@touchPointLayer.midY = @point.y
@touchPointLayer.scale = 1.8
@touchPointLayer.animate
properties:
opacity: 1
scale: 1
# midX: @point.x + @touchPointerInitialOffset.x
# midY: @point.y + @touchPointerInitialOffset.y
time: 0.1
curve: "ease-out"
# Event handlers

hideTouchCursor: ->
@touchPointLayer.animateStop()
@touchPointLayer.animate
properties:
opacity: 0
scale: 1.2
time: 0.08

keydown: (event) =>

if event.keyCode is @keyPinchCode
@@ -137,11 +118,6 @@ class TouchEmulator extends BaseClass
dispatchTouchEvent("touchstart", @target, event)

@touchPointLayer.image = @touchPointerImageActive

mousemovePosition: (event) =>
@point =
x: event.pageX
y: event.pageY

mousemove: (event) =>

@@ -175,19 +151,58 @@ class TouchEmulator extends BaseClass
dispatchTouchEvent("touchmove", @target, event)

mouseup: (event) =>

@isMouseDown = false


cancelEvent(event)

@wrap(document).removeEventListener("mousemove", @mousemove, true)
@wrap(document).removeEventListener("mouseup", @mouseup, true)

if @isPinchKeyDown or @isPanKeyDown
dispatchTouchEvent("touchend", @target, event, @touchPointDelta)
else
dispatchTouchEvent("touchend", @target, event)

@endMultiTouch()

mouseout: (event) =>

fromElement = event.relatedTarget or event.toElement

if not fromElement or fromElement.nodeName is "HTML"
@endMultiTouch()

# Utilities

showTouchCursor: ->
@touchPointLayer.animateStop()
@touchPointLayer.midX = @point.x
@touchPointLayer.midY = @point.y
@touchPointLayer.scale = 1.8
@touchPointLayer.animate
properties:
opacity: 1
scale: 1
# midX: @point.x + @touchPointerInitialOffset.x
# midY: @point.y + @touchPointerInitialOffset.y
time: 0.1
curve: "ease-out"

hideTouchCursor: ->
@touchPointLayer.animateStop()
@touchPointLayer.animate
properties:
opacity: 0
scale: 1.2
time: 0.08

mousemovePosition: (event) =>
@point =
x: event.pageX
y: event.pageY

endMultiTouch: ->

@wrap(document).removeEventListener("mousemove", @mousemove, true)
@wrap(document).removeEventListener("mouseup", @mouseup, true)

@isMouseDown = false
@touchPointLayer.image = @touchPointerImage
@hideTouchCursor()

0 comments on commit 026e006

Please sign in to comment.
You can’t perform that action at this time.