1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00

More control over HitTest behavior moved into the Track Shifter classes

This commit is contained in:
Paul Licameli
2020-09-19 23:56:12 -04:00
parent f204ee3192
commit 6e0b5b690a
5 changed files with 57 additions and 34 deletions

View File

@@ -641,9 +641,10 @@ double DoClipMove( AudacityProject &project, Track *track,
std::unique_ptr<TrackShifter> uShifter;
// Find the first channel that has a clip at time t0
auto hitTestResult = TrackShifter::HitTestResult::Track;
for (auto channel : TrackList::Channels(track) ) {
uShifter = MakeTrackShifter::Call( *track, project );
if ( uShifter->HitTest( t0, viewInfo ) ==
if ( (hitTestResult = uShifter->HitTest( t0, viewInfo )) ==
TrackShifter::HitTestResult::Miss )
uShifter.reset();
else
@@ -654,7 +655,7 @@ double DoClipMove( AudacityProject &project, Track *track,
return 0.0;
auto pShifter = uShifter.get();
state.Init( project, *track, std::move( uShifter ),
state.Init( project, *track, hitTestResult, std::move( uShifter ),
t0, viewInfo, trackList, syncLocked );
auto desiredT0 = viewInfo.OffsetTimeByPixels( t0, ( right ? 1 : -1 ) );