fix: sweep select now covers all tracks

- Removed sweepTrackIdRef filter in mouseup handler:
  all tracks are scanned for intersecting items.
- Removed track ID check from sweep overlay rendering:
  overlay appears on every track (not just drag-start track).
- Fixed stale closure by adding sweepSelectRef.
This commit is contained in:
2026-07-27 21:54:12 +07:00
parent b8dfc9b211
commit 85ad22ee4f
2 changed files with 4 additions and 6 deletions
+2 -4
View File
@@ -11903,14 +11903,12 @@ const App = () => {
if (!isSweepingRef.current) return;
isSweepingRef.current = false;
const sweep = sweepSelectRef.current;
if (sweep && sweepTrackIdRef.current) {
const tId = sweepTrackIdRef.current;
if (sweep) {
const start = Math.min(sweep.startTime, sweep.endTime);
const end = Math.max(sweep.startTime, sweep.endTime);
const curTracks = activeTracksRef.current || [];
const found = new Set();
curTracks.forEach(t => {
if (t.id !== tId) return;
(t.midiItems || []).forEach(m => {
if (m.startTime < end && m.startTime + m.duration > start) {
found.add(m.id);
@@ -16536,7 +16534,7 @@ const App = () => {
}), /*#__PURE__*/React.createElement("div", {
className: "absolute -right-[1px] top-0 bottom-0 w-[2px] bg-amber-400 z-30 pointer-events-auto cursor-ew-resize",
onMouseDown: e => handleHandleDragStart(e, 'right')
})), sweepSelect && sweepTrackIdRef.current === track.id && /*#__PURE__*/React.createElement("div", {
})), sweepSelect && /*#__PURE__*/React.createElement("div", {
className: "absolute top-0 bottom-0 border-l border-r border-amber-400 bg-amber-500/10 z-20 pointer-events-none",
style: {
left: `${Math.min(sweepSelect.startTime, sweepSelect.endTime) * zoom}px`,
File diff suppressed because one or more lines are too long