floatdby=NavScoreItemDistInterval(ImLerp(cand.Min.y,cand.Max.y,0.2f),ImLerp(cand.Min.y,cand.Max.y,0.8f),ImLerp(curr.Min.y,curr.Max.y,0.2f),ImLerp(curr.Min.y,curr.Max.y,0.8f));// Clamp down on Y to keep using box-distance for vertically touching items
//dbx /= 2; dby *= 4 // Bias for dy
if(dby)
dbx=(dbx>0.0f)?+0.0f:-0.0f;
if(dby&&dbx)
dbx=(dbx/1000.0f)+((dbx>0.0f)?+1.0f:-1.0f);
floatdist_box=fabsf(dbx)+fabsf(dby);
// Compute distance between centers (this is off by a factor of 2, but we only compare center distances with each other so it doesn't matter)
// We could early out with `if (is_clipped && !g.NavInitDefaultRequest) return false;` but when we wouldn't be able to reach unclipped widgets. This would work if user had explicit scrolling control (e.g. mapped on a stick)
// A more pragmatic solution for handling last lists is relying on the fact that they are likely evenly spread items (so that clipper can work) and we could nav at higher-level (apply index, etc.)
// So eventually we would like to provide the user will the primitives to be able to implement that sort of customized/efficient navigation handling whenever necessary.
// For scoring we use a single segment on the left side our current item bounding box (not touching the edge to avoid box overlap with zero-spaced items)