fixes 854

This commit is contained in:
André Michelle
2026-03-20 07:15:53 +01:00
parent 50b6f3362e
commit cec8b744de
@@ -1,5 +1,5 @@
import {RegionModifier} from "@/ui/timeline/tracks/audio-unit/regions/RegionModifier.ts"
import {Arrays, int, Option} from "@opendaw/lib-std"
import {Arrays, int, isNotNull, Option} from "@opendaw/lib-std"
import {ppqn, PPQN, RegionCollection} from "@opendaw/lib-dsp"
import {
AnyLoopableRegionBoxAdapter,
@@ -113,8 +113,11 @@ export class RegionLoopDurationModifier implements RegionModifier {
approve(): void {
const modifiedTracks: ReadonlyArray<TrackBoxAdapter> =
Arrays.removeDuplicates(this.#adapters.map(adapter => adapter.trackBoxAdapter.unwrap()))
const result = this.#adapters.map<BeforeState>(region =>
Arrays.removeDuplicates(this.#adapters
.map(adapter => adapter.trackBoxAdapter.unwrapOrNull())
.filter(isNotNull))
const adapters = this.#adapters.filter(({box}) => box.isAttached())
const result = adapters.map<BeforeState>(region =>
({
region,
duration: this.#selectedModifyStrategy.readDuration(region),
@@ -134,7 +137,7 @@ export class RegionLoopDurationModifier implements RegionModifier {
})),
trackSnapshots
})
this.#project.overlapResolver.apply(modifiedTracks, this.#adapters, this, 0, (_trackResolver) => {
this.#project.overlapResolver.apply(modifiedTracks, adapters, this, 0, (_trackResolver) => {
result.forEach(({region, duration, loopDuration}) => {
region.duration = duration
region.loopDuration = loopDuration