             }
         }
         else {
+            self._extendingStart = nil
             self._deselectItems(at: self._selectedIndexPaths.removing([indexPath]), animated: true, notify: true)
         }
         

    /*-------------------------------------------------------------------------------*/
    
    private func _selectItems(at indexPaths : Set<IndexPath>, animated: Bool, scrollPosition: CollectionViewScrollPosition = .none, notify: Bool) {
        let valid = indexPaths.subtracting(self._selectedIndexPaths)
        guard valid.count > 0 else { return }
        let approved = notify
            ? (self.delegate?.collectionView?(self, shouldDeselectItemsAt: valid) ?? valid)
            : valid
        guard approved.count > 0 else { return }
        self._selectedIndexPaths.formUnion(approved)

            
            // Standard selection
        else {
            var de = self._selectedIndexPaths
            de.remove(ip)
            self._deselectItems(at: de, animated: true, notify: true)
