0c4b26c76ee09cadbe1a444016f2c41df33906f9
braney
  Thu Apr 9 15:48:53 2026 -0700
Fix color picker and quickLift issues from code review, refs #37329

Color picker: fix [object Object] bug by calling .toHexString() on spectrum
result, use htmlColor.h instead of hand-rolled hex parsing, show "color
override active" status when override is set.  quickLift: remove redundant
quickLiftResolveTable call in genericBedClick, move hFindSplitTable into
else branch where it's needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 24de476b771..e0ac4acdb2a 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -2056,51 +2056,40 @@
 
 void genericBedClick(struct sqlConnection *conn, struct trackDb *tdb,
 		     char *item, int start, int bedSize)
 /* Handle click in generic BED track. */
 {
 char table[HDB_MAX_TABLE_STRING];
 boolean hasBin;
 struct bed *bed;
 char query[512];
 struct sqlResult *sr;
 char **row;
 boolean firstTime = TRUE;
 
 char *liftDb = cloneString(trackDbSetting(tdb, "quickLiftDb"));
 
-char *db = database;
-char *sqlTable = tdb->table;
-if (liftDb != NULL)
-    {
-    quickLiftResolveTable(tdb, trackHubSkipHubName(tdb->track), &sqlTable, &liftDb);
-    db = liftDb;
-    }
-
-if (!hFindSplitTable(db, seqName, tdb->table, table, sizeof table, &hasBin))
-    errAbort("genericBedClick track %s not found", tdb->table);
-
 if (liftDb)
     {
     struct bed *liftedBeds = quickLiftSqlLoadBeds(tdb, trackHubSkipHubName(tdb->track), liftDb,
         seqName, winStart, winEnd, NULL, (ItemLoader2)bedLoadN, bedSize, FALSE);
     bedPrintPos(liftedBeds, bedSize, tdb);
-
-    //extraFieldsPrint(tdb,sr,row,sqlCountColumns(sr));
     }
 else
     {
+    if (!hFindSplitTable(database, seqName, tdb->table, table, sizeof table, &hasBin))
+        errAbort("genericBedClick track %s not found", tdb->table);
     if (bedSize <= 3)
         sqlSafef(query, sizeof query, "select * from %s where chrom = '%s' and chromStart = %d", table, seqName, start);
     else
         {
         struct hTableInfo *hti = hFindTableInfoWithConn(conn, seqName, tdb->table);
         if (hti && *hti->nameField && differentString("name", hti->nameField))
             sqlSafef(query, sizeof query, "select * from %s where %s = '%s' and chrom = '%s' and chromStart = %d",
                 table, hti->nameField, item, seqName, start);
         else
             sqlSafef(query, sizeof query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d",
                 table, item, seqName, start);
         }
     sr = sqlGetResult(conn, query);
     while ((row = sqlNextRow(sr)) != NULL)
         {