1c232cf435b6001dd59a4b266130fc59aea1215d
tdreszer
  Wed Jul 7 13:21:09 2010 -0700
Fixed side button chrome bug where hgTrackUi wasn't called because of drag reorder
diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index 66ed44c..63a021e 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -5,6 +5,7 @@
 var originalPosition;
 var originalSize;
 var originalCursor;
+var originalMouseOffset = {x:0, y:0};
 var clickClipHeight;
 var revCmplDisp;
 var insideX;
@@ -1046,11 +1047,43 @@
 
 /////////////////////////////////////////////////////
 
+function saveMouseOffset(ev)
+{   // Save the mouse offset associated with this event
+    originalMouseOffset = {x: ev.clientX, y: ev.clientY};
+}
+
+function mouseHasMoved(ev)
+{   // return true if mouse has moved a significant amount
+    var minPixels = 10;
+    var movedX = ev.clientX - originalMouseOffset.x;
+    var movedY = ev.clientY - originalMouseOffset.y;
+    if ( arguments.length == 2) {
+        var num = Number(arguments[1]);
+        if(isNaN(num)) {
+            if ( arguments[1].toLowerCase() == "x" )
+                return (movedX > minPixels || movedX < (minPixels * -1));
+            if ( arguments[1].toLowerCase() == "y" )
+                return (movedY > minPixels || movedY < (minPixels * -1));
+        }
+        else
+            minPixels = num;
+    }
+    return (   movedX > minPixels || movedX < (minPixels * -1)
+            || movedY > minPixels || movedY < (minPixels * -1));
+}
+
 function blockTheMap(e)
 {
     blockUseMap=true;
 }
 
+function blockTheMapOnMouseMove(ev)
+{
+    if (!blockUseMap && mouseHasMoved(ev)) {
+        blockUseMap=true;
+    }
+}
+
 // wait for jStore to prepare the storage engine (this token reload code is experimental and currently dead).
 jQuery.jStore && jQuery.jStore.ready(function(engine) {
     // alert(engine.jri);
@@ -1157,8 +1190,9 @@
             $(imgTable).tableDnD({
                 onDragClass: "trDrag",
                 dragHandle: "dragHandle",
-                onDragStart: function(table, row) {
-                    $(document).bind('mousemove',blockTheMap);
+                onDragStart: function(ev, table, row) {
+                    saveMouseOffset(ev);
+                    $(document).bind('mousemove',blockTheMapOnMouseMove);
                 },
                 onDrop: function(table, row, dragStartIndex) {
                     if($(row).attr('rowIndex') != dragStartIndex) {
@@ -1167,7 +1201,7 @@
                         }
                         imgTblZipButtons( table );
                     }
-                    $(document).unbind('mousemove',blockTheMap);
+                    $(document).unbind('mousemove',blockTheMapOnMouseMove);
                     setTimeout('blockUseMap=false;',50); // Necessary incase the selectEnd was over a map item. select takes precedence.
                 }
             });