 # select segment.
 hook 'mouseup', 0, (point, event, state) ->
   if @lassoSelectAnchor?
-    mainPoint = @trackerPointToMain point
-    lassoRectangle = new @draw.Rectangle(
-        Math.min(@lassoSelectAnchor.x, mainPoint.x),
-        Math.min(@lassoSelectAnchor.y, mainPoint.y),
-        Math.abs(@lassoSelectAnchor.x - mainPoint.x),
-        Math.abs(@lassoSelectAnchor.y - mainPoint.y)
-    )
+    if @lassoSelection?
+      # Move the cursor to the selection
+      @setCursor @lassoSelection.end
 
     @lassoSelectAnchor = null
     @clearLassoSelectCanvas()
 
-    first = @tree.start
-    until (not first?) or first.type is 'blockStart' and @view.getViewNodeFor(first.container).path.intersects lassoRectangle
-      first = first.next
-
-    last = @tree.end
-    until (not last?) or last.type is 'blockEnd' and @view.getViewNodeFor(last.container).path.intersects lassoRectangle
-      last = last.prev
-
-    unless first? and last? then return
-
-    [first, last] = validateLassoSelection @tree, first, last
-
-    @lassoSelection = new model.List first, last
-
-    # Move the cursor to the selection
-    @setCursor @lassoSelection.end
-
     @redrawMain()
+  @lassoSelectionDocument = null
 
 # On mousedown, we might want to
 # pick a selected segment up; check.

          if @lastHighlight.type is 'document'
            @spliceIn @draggingBlock, @lastHighlight.start

      futureCursorLocation = @draggingBlock.start.getLocation()

      # Reparse the parent if we are
      # in a socket


class FloatingOperation
  constructor: (@index, @block, @position, @type) ->
    @block = @block.clone()

# On redraw, we draw all the floating blocks
# in their proper positions.
