 			v = 100 * -val / (1 + elapsed);
 			velocity = 0.8 * v + 0.2 * velocity;
 
+	pointerUsed = false
 	usePointer = (item) ->
 		horizontalContinuous = createContinuous item, 'x'
 		verticalContinuous = createContinuous item, 'y'
 
 		focus = false
+		listen = false
 		x = y = 0
 
 		moveMovement = (e) ->

				x = y = 0

			impl.window.onPointerMove (e) ->
				return unless focus

				horizontalContinuous.update e.x - x
				verticalContinuous.update e.y - y

				x = e.x; y = e.y

				moveMovement e

		if impl.window?
			listenOnWindowSignals()


		listenOnWindowSignals = ->
			impl.window.onPointerReleased (e) ->
				listen = false

				return unless focus
				focus = false
				pointerUsed = false

				moveMovement e

