a39c1560e7478da85f06f632c5a31cd911fe538d
braney
  Thu Aug 2 17:10:12 2018 -0700
make subtracks in composites actually sort by floating point priority

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index ddbd396..c55380c 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -14227,31 +14227,36 @@
         int h = subtrack->totalHeight(subtrack, minVis);
         subtrack->height = h;
         height += h;
         }
     }
 track->height = height;
 return track->height;
 }
 
 int trackPriCmp(const void *va, const void *vb)
 /* Compare for sort based on priority */
 {
 const struct track *a = *((struct track **)va);
 const struct track *b = *((struct track **)vb);
 
-return (a->priority - b->priority);
+double diff = a->priority - b->priority;
+if (diff > 0)
+    return 1;
+else if (diff < 0)
+    return -1;
+return 0;
 }
 
 
 static bool isSubtrackVisibleTdb(struct cart *cart, struct trackDb *tdb)
 /* Has this subtrack not been deselected in hgTrackUi or declared with
  *  * "subTrack ... off"?  -- assumes composite track is visible. */
 {
 boolean overrideComposite = (NULL != cartOptionalString(cart, tdb->track));
 bool enabledInTdb = TRUE; // assume that this track is enabled in tdb
 char option[1024];
 safef(option, sizeof(option), "%s_sel", tdb->track);
 boolean enabled = cartUsualBoolean(cart, option, enabledInTdb);
 if (overrideComposite)
     enabled = TRUE;
 return enabled;