fbcf25a42d55e73ac10d4f9ba265faf92f697e92 braney Mon Jan 29 14:56:58 2018 -0800 fix weird behavior of custom tracks going to the bottom after a track reorder #20903 diff --git src/hg/hgTracks/imageV2.c src/hg/hgTracks/imageV2.c index c9a2631..1501bb2 100644 --- src/hg/hgTracks/imageV2.c +++ src/hg/hgTracks/imageV2.c @@ -31,34 +31,34 @@ struct flatTracks *flatTrack; AllocVar(flatTrack); flatTrack->track = track; char var[256]; // The whole reason to do this is to reorder tracks/subtracks in the image! safef(var,sizeof(var),"%s_%s",track->tdb->track,IMG_ORDER_VAR); flatTrack->order = cartUsualInt(cart, var,IMG_ANYORDER); if (flatTrack->order >= IMG_ORDERTOP) { cartRemove(cart,var); flatTrack->order = IMG_ANYORDER; } static int topOrder = IMG_ORDERTOP; // keep track of the order added to top of image static int lastOrder = IMG_ORDEREND; // keep track of the order added and beyond end if ( flatTrack->order == IMG_ANYORDER) { + int index; if (track->customTrack) flatTrack->order = ++topOrder; // Custom tracks go to top - int index; - if ((orderedWiggles != NULL) && ((index = slNameFindIx(orderedWiggles, track->track)) != -1)) + else if ((orderedWiggles != NULL) && ((index = slNameFindIx(orderedWiggles, track->track)) != -1)) flatTrack->order = topOrder + index + 1; else flatTrack->order = ++lastOrder; } slAddHead(flatTracks,flatTrack); } int flatTracksCmp(const void *va, const void *vb) // Compare to sort on flatTrack->order { const struct flatTracks *a = *((struct flatTracks **)va); const struct flatTracks *b = *((struct flatTracks **)vb); if (a->order == b->order) return tgCmpPriority(&(a->track),&(b->track));