   if @clickedBlock? and point.from(@clickedPoint).magnitude() > MIN_DRAG_DISTANCE
     for record, i in @floatingBlocks
       if record.block is @clickedBlock
-        @addMicroUndoOperation new FromFloatingOperation record, this
+        @undoCapture()
+
+        @pushUndo new FloatingOperation record.block, record.position, 'delete'
 
         @floatingBlocks.splice i, 1
 


    # Add the undo operation associated
    # with creating this floating block
    @addMicroUndoOperation new ToFloatingOperation @draggingBlock, renderPoint, this

    # Add this block to our list of floating blocks
    @floatingBlocks.push new FloatingBlockRecord(

    @redrawMain()
    @redrawHighlights()

Editor::performFloatingOperation = (op, direction) ->
  console.log 'performing floating operation'
  if (op.type is 'create') is (direction is 'forward')
    @floatingBlocks.push new FloatingBlockRecord(
      op.block.clone()
      op.position
    )
  else
    @floatingBlocks = @floatingBlocks.filter (record) ->
      not (record.block.stringify() is op.block.stringify() and
           record.position.equals(op.position))

class FloatingOperation
  constructor: (@block, @position, @type) ->

# On mousedown, we can hit test for floating blocks.
hook 'mousedown', 5, (point, event, state) ->
  # If someone else has already taken this click, pass.
