9c6055fba90d52e081a16fa54bd3a2b31a7243a6
braney
  Wed Jan 27 16:30:13 2021 -0800
changing back to the old knownGene model

diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 1b9c967..b5a9c2e 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -2839,30 +2839,31 @@
 printf("<B>Set Coalescent Ancestor to:</B>");
 cgiMakeDropListFull(codeVarName, ancestors, ancestors,
     count, coalescent, NULL, NULL);
 }
 #endif
 
 void specificUi(struct trackDb *tdb, struct trackDb *tdbList, struct customTrack *ct, boolean ajax)
 /* Draw track specific parts of UI. */
 {
 char *track = tdb->track;
 // Ideally check cfgTypeFromTdb()/cfgByCfgType() first, but with all these special cases already in
 //    place, lets be cautious at this time.
 // NOTE: Developer, please try to use cfgTypeFromTdb()/cfgByCfgType().
 
 boolean boxed = trackDbSettingClosestToHomeOn(tdb, "boxedCfg");
+boolean isGencode3 = trackDbSettingOn(tdb, "isGencode3");
 // UI precedence:
 // 1) supers to get them out of the way: they have no controls
 // 2) special cases based upon track name (developer please avoid)
 // 3) cfgTypeFromTdb()/cfgByCfgType() <== prefered method
 // 4) special cases falling through the cracks but based upon type
 if (tdbIsSuperTrack(tdb))
     superTrackUi(tdb, tdbList);
 else if (sameString(track, "stsMap"))
     stsMapUi(tdb);
 else if (sameString(track, "affyTxnPhase2"))
     affyTxnPhase2Ui(tdb);
 else if (sameString(track, "cgapSage"))
     cgapSageUi(tdb);
 else if (sameString(track, "stsMapMouseNew"))
     stsMapMouseUi(tdb);
@@ -2886,31 +2887,31 @@
     recombRateUi(tdb);
 else if (sameString(track, "recombRateRat"))
     recombRateRatUi(tdb);
 else if (sameString(track, "recombRateMouse"))
     recombRateMouseUi(tdb);
 else if (sameString(track, "cghNci60"))
     cghNci60Ui(tdb);
 else if (sameString(track, "xenoRefGene")
      ||  sameString(track, "ncbiGene")
      ||  sameString(track, "refGene"))
     refGeneUI(tdb);
 else if (startsWith("transMapAln", track) && (trackDbSetting(tdb, "bigDataUrl") == NULL))
     transMapUI(tdb);
 else if (sameString(track, "rgdGene2"))
     rgdGene2UI(tdb);
-else if (sameString(track, "knownGene"))
+else if (sameString(track, "knownGene") && !isGencode3)
     knownGeneUI(tdb);
 else if (sameString(track, "omimLocation"))
     omimLocationUI(tdb);
 else if (sameString(track, "omimGene2"))
     omimGene2UI(tdb);
 else if (sameString(track, "omimGene"))
     omimGeneUI(tdb);
 else if (sameString(track, "hg17Kg"))
     hg17KgUI(tdb);
 else if (startsWith("ucscRetro", track)
      ||  startsWith("retroMrnaInfo", track))
     retroGeneUI(tdb);
 else if (sameString(track, "ensGeneNonCoding"))
     ensemblNonCodingUI(tdb);
 else if (startsWith("refSeqComposite", track))