         if @lineChildren[line].length is 0
           # Socket should be shorter than other blocks
           if @model.type is 'socket'
-            @minDistanceToBase[line].above = @view.opts.textHeight * @view.opts.textPadding
-            @minDistanceToBase[line].above = @view.opts.textPadding
-
-          # Other empty lines should be the height of a normal block.
+            @minDistanceToBase[line].above = @view.opts.textHeight + @view.opts.textPadding
+            @minDistanceToBase[line].below = @view.opts.textPadding
+
+          # Text should not claim any padding
+          else if @model.type is 'text'
+            @minDistanceToBase[line].above = @view.opts.textHeight
+            @minDistanceToBase[line].below = 0
+
+          # The first line of an indent is often empty; this is the desired behavior
+          else if @model.type is 'indent'
+            @minDistanceToBase[line].above = 0
+            @minDistanceToBase[line].below = @view.opts.padding
+
+          # Empty blocks should be the height of lines with text
           else
             @minDistanceToBase[line].above = @view.opts.textHeight + @view.opts.padding
             @minDistanceToBase[line].below = @view.opts.padding

  )

  path = path.filter((x, i) ->
    if x.x is 25
      debugger
    return not draw._collinear(path[(i - 1) %% path.length], x, path[(i + 1) %% path.length])
  )

  return path


      if parenttype is 'block' and @model.type is 'indent'
        @margins =
          top: 0 #padding
          bottom: if @lineLength > 1 then @view.opts.indentTongueHeight else padding

          firstLeft: 0
          midLeft: @view.opts.indentWidth
