           unless state.addedCapturePoint
             @addMicroUndoOperation 'CAPTURE_POINT'
             state.addedCapturePoint = true
-          @addMicroUndoOperation new FromFloatingOperation record
+          @addMicroUndoOperation new FromFloatingOperation record, this
 
           @floatingBlocks.splice i, 1
 


      best = null; min = Infinity

      # Find the closest droppable block
      testPoints = @dropPointQuadTree.retrieve {
        x: mainPoint.x - MAX_DROP_DISTANCE
        y: mainPoint.y - MAX_DROP_DISTANCE
        w: MAX_DROP_DISTANCE * 2
        h: MAX_DROP_DISTANCE * 2
      }, (point) =>
        unless point._ice_needs_shift and not @shiftKeyPressed
          distance = mainPoint.from(point)
          distance.y *= 2; distance = distance.magnitude()
          if distance < min and mainPoint.from(point).magnitude() < MAX_DROP_DISTANCE and
             @view.getViewNodeFor(point._ice_node).highlightArea?
            best = point._ice_node
            min = distance

      if best isnt @lastHighlight
        @clearHighlightCanvas()

        if best? then @view.getViewNodeFor(best).highlightArea.draw @highlightCtx

        @lastHighlight = best

  hook 'mouseup', 0, ->
    clearTimeout @discourageDropTimeout; @discourageDropTimeout = null

      super

  class FromFloatingOperation
    constructor: (record, editor) ->
      @position = new editor.draw.Point record.position.x, record.position.y
      @block = record.block.clone()

    undo: (editor) ->
