     action.undo()
     @redoStack.push(action)
     @trigger('undo', {action})
+    @trigger('drawingChanged', {shape: shape})
 
   redo: ->
     return unless @redoStack.length

  saveShape: (shape) ->
    @execute(new LC.AddShapeAction(this, shape))
    @trigger('saveShape', {shape: shape})

  pan: (x, y) ->
    # Subtract because we are moving the viewport

    @execute(new LC.ClearAction(this, oldShapes, newShapes))
    @repaint()
    @trigger('clear', null)
    @trigger('drawingChanged', {shape: shape})

  execute: (action) ->
    @undoStack.push(action)
