f77216da64ee5a4ff6463b0c42f2fc0189c7cb40
max
  Fri Oct 11 05:58:32 2024 -0700
changes after code review, address case when top track is not ruler track, refs #34582

diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index 21a6917..99ea75d 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -2117,30 +2117,33 @@
   ///////////////////////////////////////
  //// rightClick (aka context menu) ////
 ///////////////////////////////////////
 var rightClick = {
 
     menu: null,
     selectedMenuItem: null,   // currently choosen context menu item (via context menu).
     floatingMenuItem: null,
     currentMapItem:   null,
     supportZoomCodon: true,  // add zoom to exon and zoom to codon to right click menu
     clickedHighlightIdx : null,  // the index (0,1,...) of the highlight item that overlaps the last right-click
 
     moveTo : function(id, topOrBottom) {
         /* move a track to either "top" or "bottom" position */
         let newPos = "0.5";
+        if (hgTracks.trackDb[0]!=="ruler")
+            newPos = 0;
+
         if (topOrBottom==="bottom") {
             newPos = String(parseInt($(".imgOrd").last().attr("abbr"))+1);
         }
 
         let trEl = $(document.getElementById('tr_' + id));
         trEl.attr('abbr', newPos);
 
         dragReorder.sort($("#imgTbl"));
         dragReorder.setOrder($("#imgTbl"));
     },
     hideTracks: function (ids, hideParent) 
     {
         var cartVars = [];
         var cartVals = [];