diff options
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index ce538961875..71fd6bb80f5 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1728,26 +1728,22 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op)) Scene *scene = CTX_data_scene(C); ListBase *seqbasep = SEQ_active_seqbase_get(SEQ_editing_get(scene)); + if (sequencer_view_has_preview_poll(C) && !sequencer_view_preview_only_poll(C)) { + return OPERATOR_CANCELLED; + } + SEQ_prefetch_stop(scene); - const bool is_preview = sequencer_view_has_preview_poll(C); - if (is_preview) { - if (!sequencer_view_preview_only_poll(C)) { - return OPERATOR_CANCELLED; - } - SEQ_query_rendered_strips_to_tag(seqbasep, scene->r.cfra, 0); - } + SeqCollection *selected_strips = selected_strips_from_context(C); + Sequence *seq; - LISTBASE_FOREACH (Sequence *, seq, seqbasep) { - if (is_preview && (seq->tmp_tag == false)) { - continue; - } - if (seq->flag & SELECT) { - SEQ_edit_flag_for_removal(scene, seqbasep, seq); - } + SEQ_ITERATOR_FOREACH (seq, selected_strips) { + SEQ_edit_flag_for_removal(scene, seqbasep, seq); } SEQ_edit_remove_flagged_sequences(scene, seqbasep); + SEQ_collection_free(selected_strips); + DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS); DEG_relations_tag_update(bmain); WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene); |