   onMouseMove: (event) ->
     super arguments...
 
-    @currentPixelCoordinates
+    currentPixelCoordinates = @currentPixelCoordinates()
+
+    newPixelCoordinates =
       x: @mouseState.x
       y: @mouseState.y
 
+    return if EJSON.equals currentPixelCoordinates, newPixelCoordinates
+
+    @currentPixelCoordinates newPixelCoordinates
+
     @applyPencil()
 
   onMouseUp: (event) ->


    # End stroke.
    @lastStrokeCoordinates null

  applyPencil: ->
    return unless @mouseState.leftButton


    if event.which is AC.Keys.shift
      if @mouseState.leftButton
        @lockedCoordinate null
        @drawStraight true
        
      else
