644f1ed70c1b04896944f66bdfa03c16278135d6 braney Fri Jul 31 15:16:12 2026 -0700 quickLift: keep the difference lines from standing still during a drag The difference lines are drawn up over a track's center label, but center labels don't scroll with the data, so the lines sat still while the image moved underneath them. hgTracks now keeps each center label as text with the color it was drawn in, and flags the label when lines were painted over it. While the image is being dragged hgTracks.js hides that slice and puts the label up as text in its place, then swaps the image back on drop. Windows with no difference lines drawn are untouched. refs #37974 diff --git src/hg/hgTracks/quickLift.c src/hg/hgTracks/quickLift.c index 558059f00d0..3d5cf9cd1f2 100644 --- src/hg/hgTracks/quickLift.c +++ src/hg/hgTracks/quickLift.c @@ -99,30 +99,37 @@ initializeHighlightColors(); boolean drawTriangle = FALSE; if (startsWith("bigQuickLiftChain", tg->tdb->type)) drawTriangle = TRUE; char *liftDb = trackDbSetting(tg->tdb, "quickLiftDb"); struct quickLiftRegions *regions = quickLiftGetRegions(database, liftDb, quickLiftFile, chromName, seqStart, seqEnd); struct quickLiftRegions *hr = regions; int fontHeight = mgFontLineHeight(tl.font); int height = tg->height; if (!drawTriangle && isCenterLabelIncluded(tg)) { height += fontHeight; yOff -= fontHeight; + if ((regions != NULL) && theImgBox && curImgTrack) + { + // There are lines to draw and they go up over the center label. dragScroll + // can't show that slice of the image while the image is moving, so tell it to + // put up the center label as text instead (see panImages() in hgTracks.js). + curImgTrack->cntrLabDrawnOver = TRUE; + } } if (drawTriangle && (hr == NULL)) { mapDenseChain(tg, hvg, quickLiftFile, seqStart, seqEnd, xOff, yOff, width, font, color); return; } int pos = xOff; char * lastId = 0; for(; hr; hr = hr->next) { unsigned int hexColor = highlightColors[hr->type]; double scale = scaleForWindow(width, seqStart, seqEnd); int x1 = xOff + scale * (hr->chromStart - seqStart);