X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftracks.C;h=4873fac020d351c396da0fb0914c2d8be64ae38c;hp=0f53df742895db789f82963b445cd5331dbeceb1;hb=e375434717622cc3198a6bf9f7b7fb9fde555c21;hpb=e23393f4ff9f772ac8f47926cf490dc87a630ed4 diff --git a/cinelerra-5.1/cinelerra/tracks.C b/cinelerra-5.1/cinelerra/tracks.C index 0f53df74..4873fac0 100644 --- a/cinelerra-5.1/cinelerra/tracks.C +++ b/cinelerra-5.1/cinelerra/tracks.C @@ -113,14 +113,16 @@ void Tracks::clear_selected_edits() } } -void Tracks::select_affected_edits(double position, Track *start_track) +void Tracks::select_affected_edits(double position, Track *start_track, int sense) { for( Track *track=start_track; track; track=track->next ) { if( !track->record ) continue; for( Edit *edit=track->edits->first; edit; edit=edit->next ) { + if( edit->silence() ) continue; double startproject = track->from_units(edit->startproject); if( edl->equivalent(startproject, position) ) { - edit->is_selected = 1; + edit->is_selected = sense >= 0 ? sense : + edit->is_selected ? 0 : 1; break; } } @@ -658,6 +660,7 @@ int Tracks::new_group(int id) for( Track *track=first; track; track=track->next ) { if( !track->record ) continue; for( Edit *edit=track->edits->first; edit; edit=edit->next ) { + if( edit->group_id > 0 ) continue; if( !edit->is_selected ) continue; edit->group_id = id; ++count; @@ -672,7 +675,7 @@ int Tracks::set_group_selected(int id, int v) for( Track *track=first; track; track=track->next ) { for( Edit *edit=track->edits->first; edit; edit=edit->next ) { if( edit->group_id != id ) continue; - edit->is_selected = v; + edit->is_selected = v >= 0 ? v : !edit->is_selected ? 1 : 0; ++count; } }