         return (rows > 0)
             && (indexPath != nil)
             && canMoveRowAt(indexPath: indexPath!)
+            && shouldMoveRowAt(indexPath: indexPath!, forDraggingGesture: longPressGestureRecognizer)
     }
     
 }

        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
    }
    
    /// Provides the delegate a chance to modify the cell visually before dragging occurs.
    ///
    /// Defaults to using the cell as-is if not implemented. The default implementation of this method is empty—no need to call `super`.

    
    fileprivate func canMoveRowAt(indexPath: IndexPath) -> Bool {
        return dataSource?.tableView?(self, canMoveRowAt: indexPath) ?? true
    }
    
    fileprivate func shouldMoveRowAt(indexPath: IndexPath, forDraggingGesture gesture: UILongPressGestureRecognizer) -> Bool {
        return longPressReorderDelegate?.tableView?(self, shouldMoveRowAtIndexPath: indexPath, forDraggingGesture: longPressGestureRecognizer) ?? true
    }
    
    @objc internal func _longPress(_ gesture: UILongPressGestureRecognizer) {
