Roo/grid/GridDragZone.js
[roojs1] / Roo / grid / GridDragZone.js
index 402837c..d7cb0e7 100644 (file)
@@ -30,15 +30,31 @@ Roo.extend(Roo.grid.GridDragZone, Roo.dd.DragZone, {
     getDragData : function(e){
         var t = Roo.lib.Event.getTarget(e);
         var rowIndex = this.view.findRowIndex(t);
-        if(rowIndex !== false){
-            var sm = this.grid.selModel;
+        var sm = this.grid.selModel;
             
-            // if editorgrid.. 
-            if (sm.getSelectedCell && (!sm.getSelectedCell() || (sm.getSelectedCell()[0] == rowIndex) ) ) {
-                Roo.log([ sm.getSelectedCell() ? sm.getSelectedCell()[0] : 'NO' , rowIndex ]);
+        //Roo.log(rowIndex);
+        
+        if (sm.getSelectedCell) {
+            // cell selection..
+            if (!sm.getSelectedCell()) {
+                return false;
+            }
+            if (rowIndex != sm.getSelectedCell()[0]) {
                 return false;
             }
-            Roo.log([ sm.getSelectedCell() ? sm.getSelectedCell()[0] : 'NO' , rowIndex ]);
+        
+        }
+        
+        var sels = sm.getSelections ? sm.getSelections() : (
+                    sm.getSelectedCell() ? [ this.grid.ds.getAt(sm.getSelectedCell()[0]) ] : []);
+        
+        // before it used to all dragging of unseleted... - now we dont do that.
+        if(sels || sels.length){
+            
+            // if editorgrid.. 
+            
+            
+            //Roo.log([ sm.getSelectedCell() ? sm.getSelectedCell()[0] : 'NO' , rowIndex ]);
                
             //if(!sm.isSelected(rowIndex) || e.hasModifier()){
               //  
@@ -54,13 +70,14 @@ Roo.extend(Roo.grid.GridDragZone, Roo.dd.DragZone, {
                 ddel: this.ddel,
                 rowIndex: rowIndex,
                 selections:sm.getSelections ? sm.getSelections() : (
-                    sm.getSelectedCell() ? [ grid.ds.getAt(sm.getSelectedCell()[0]) ] : []
+                    sm.getSelectedCell() ? [ this.grid.ds.getAt(sm.getSelectedCell()[0]) ] : []
                 )
             };
         }
         return false;
     },
-
+    
+    
     onInitDrag : function(e){
         var data = this.dragData;
         this.ddel.innerHTML = this.grid.getDragDropText();