       didDragStart = false
       
     case .canvasWaiting:
+      
       guard let selectionRect = canvasView.selectionRect else { return }
       // select concepts that intersect with the selection rect
       if let concepts = matchedConcepts(inRect: selectionRect) {
         safeTransiton {
           try stateManager.toMultipleSelectedElements(elements: concepts)
         }
-      }
-      
+      } else {
+        for concept in document.concepts { concept.isSelected = false }
+      }
+      
+      didDragStart = false
       canvasView.selectFromPoint = nil
       canvasView.selectToPoint = nil
+      
       canvasView.needsDisplay = true
-      didDragStart = false
+      
     default:
       return
     }

        canvasView.selectFromPoint = point
      } else {
        canvasView.selectToPoint = point
      }
      canvasView.needsDisplay = true
    default:

      document.move(concept: concept, toPoint: point)
      
      didDragStart = false
      
    case .multipleSelectedElements(let elements):
      Swift.print("multiple drag ended")
      
