ec3e0ff0e32f2ed7dcbb88bd1b59019569cc9fa3
hiram
  Mon May 14 19:45:45 2018 -0700
special case rmskJoined tracks when in full mode for height calculation and clean up spaces at the end of lines refs #21454

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 89474c8..913ab24 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -5168,31 +5168,39 @@
             }
         if (trackShouldUseAjaxRetrieval(track))
             y += REMOTE_TRACK_HEIGHT;
         else
             {
             boolean doWiggle = cartOrTdbBoolean(cart, track->tdb, "doWiggle" , FALSE);
             if (doWiggle)
                 track->drawLeftLabels = wigLeftLabels;
         #ifdef IMAGEv2_NO_LEFTLABEL_ON_FULL
             if (theImgBox && track->limitedVis != tvDense)
                 y += sliceHeight;
             else
         #endif ///def IMAGEv2_NO_LEFTLABEL_ON_FULL
 		{
 		setGlobalsFromWindow(windows); // use GLOBALS from first window
-		int ynew = doLeftLabels(track, hvgSide, font, y);
+		int ynew = 0;
+		/* rmskJoined tracks are non-standard in FULL mode
+		   they are just their track height, not per-item height
+                 */
+		if (startsWith("rmskJoined", track->track))
+		    ynew = flatTrack->maxHeight + y;
+		else
+		    ynew = doLeftLabels(track, hvgSide, font, y);
+
 		y += flatTrack->maxHeight;
 		if ((ynew - y) > flatTrack->maxHeight)
 		    { // TODO should be errAbort?
 		    warn("doLeftLabels(y=%d) returned new y value %d that is too high - should be %d at most.",
 			y, ynew, flatTrack->maxHeight);
 		    }
 		}
             }
         }
     }
 else
     {
     leftLabelX = leftLabelWidth = 0;
     }