[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:
@@ -6507,9 +6507,25 @@ function getBwEdgeHit(cssX, cssW, range) {
|
|||||||
let bestEdge = null;
|
let bestEdge = null;
|
||||||
let bestDist = Number.POSITIVE_INFINITY;
|
let bestDist = Number.POSITIVE_INFINITY;
|
||||||
for (const spec of visibleBandwidthSpecs(lastFreqHz)) {
|
for (const spec of visibleBandwidthSpecs(lastFreqHz)) {
|
||||||
const halfBw = spec.widthHz / 2;
|
const span = displaySpanForBandwidthSpec(spec);
|
||||||
const xL = ((spec.centerHz - halfBw - range.visLoHz) / range.visSpanHz) * cssW;
|
const xL = ((span.loHz - range.visLoHz) / range.visSpanHz) * cssW;
|
||||||
const xR = ((spec.centerHz + halfBw - 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 distL = Math.abs(cssX - xL);
|
||||||
const distR = Math.abs(cssX - xR);
|
const distR = Math.abs(cssX - xR);
|
||||||
if (distL < HIT && distL < bestDist) {
|
if (distL < HIT && distL < bestDist) {
|
||||||
@@ -6559,9 +6575,17 @@ if (spectrumCanvas) {
|
|||||||
const cssX = e.clientX - rect.left;
|
const cssX = e.clientX - rect.left;
|
||||||
const range = spectrumVisibleRange(lastSpectrumData);
|
const range = spectrumVisibleRange(lastSpectrumData);
|
||||||
const dxHz = ((cssX - _bwDragStartX) / rect.width) * range.visSpanHz;
|
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
|
||||||
: _bwDragStartBwHz - dxHz * 2;
|
: _bwDragStartBwHz - dxHz * 2;
|
||||||
|
} else {
|
||||||
|
newBw = _bwDragEdge === "right"
|
||||||
|
? _bwDragStartBwHz + dxHz
|
||||||
|
: _bwDragStartBwHz - dxHz;
|
||||||
|
}
|
||||||
const [, minBw, maxBw] = mwDefaultsForMode(modeEl ? modeEl.value : "USB");
|
const [, minBw, maxBw] = mwDefaultsForMode(modeEl ? modeEl.value : "USB");
|
||||||
newBw = Math.round(Math.max(minBw, Math.min(maxBw, newBw)));
|
newBw = Math.round(Math.max(minBw, Math.min(maxBw, newBw)));
|
||||||
currentBandwidthHz = newBw;
|
currentBandwidthHz = newBw;
|
||||||
|
|||||||
Reference in New Issue
Block a user