[fix](trx-frontend): align bw resize with one-sided filters

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
2026-03-04 19:49:44 +01:00
parent 0836091bbc
commit 013667f284
@@ -6507,9 +6507,25 @@ function getBwEdgeHit(cssX, cssW, range) {
let bestEdge = null;
let bestDist = Number.POSITIVE_INFINITY;
for (const spec of visibleBandwidthSpecs(lastFreqHz)) {
const halfBw = spec.widthHz / 2;
const xL = ((spec.centerHz - halfBw - range.visLoHz) / range.visSpanHz) * cssW;
const xR = ((spec.centerHz + halfBw - range.visLoHz) / range.visSpanHz) * cssW;
const span = displaySpanForBandwidthSpec(spec);
const xL = ((span.loHz - range.visLoHz) / range.visSpanHz) * cssW;
const xR = ((span.hiHz - range.visLoHz) / range.visSpanHz) * cssW;
if (span.side < 0) {
const distL = Math.abs(cssX - xL);
if (distL < HIT && distL < bestDist) {
bestEdge = "left";
bestDist = distL;
}
continue;
}
if (span.side > 0) {
const distR = Math.abs(cssX - xR);
if (distR < HIT && distR < bestDist) {
bestEdge = "right";
bestDist = distR;
}
continue;
}
const distL = Math.abs(cssX - xL);
const distR = Math.abs(cssX - xR);
if (distL < HIT && distL < bestDist) {
@@ -6559,9 +6575,17 @@ if (spectrumCanvas) {
const cssX = e.clientX - rect.left;
const range = spectrumVisibleRange(lastSpectrumData);
const dxHz = ((cssX - _bwDragStartX) / rect.width) * range.visSpanHz;
let newBw = _bwDragEdge === "right"
const side = sidebandDirectionForMode(modeEl ? modeEl.value : "USB");
let newBw;
if (side === 0) {
newBw = _bwDragEdge === "right"
? _bwDragStartBwHz + dxHz * 2
: _bwDragStartBwHz - dxHz * 2;
} else {
newBw = _bwDragEdge === "right"
? _bwDragStartBwHz + dxHz
: _bwDragStartBwHz - dxHz;
}
const [, minBw, maxBw] = mwDefaultsForMode(modeEl ? modeEl.value : "USB");
newBw = Math.round(Math.max(minBw, Math.min(maxBw, newBw)));
currentBandwidthHz = newBw;