Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Antalik <richardantalik@gmail.com>2021-11-30 13:09:58 +0300
committerRichard Antalik <richardantalik@gmail.com>2021-11-30 13:15:20 +0300
commitd8edc2c6345306b943d73d2806bea18b67c66bc3 (patch)
treed9c4ae430a6ad5c97b996755f8cc39994844bb3d /source/blender/editors/space_sequencer/sequencer_edit.c
parentc12d8a72cef557c0d9c76e78c3754e3009e74efd (diff)
VSE: Disable interactivity in combined view
Combined view of timeline and preview causes seemingly unpredictable behavior after some operators have been allowed to run in preview region. Disable new features in this combined view, so behavior should be consistent with previous versions. ref: https://developer.blender.org/T92584 Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D13419
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 899c2f6b4f4..ce538961875 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -210,7 +210,7 @@ bool sequencer_strip_has_path_poll(bContext *C)
(SEQ_HAS_PATH(seq)));
}
-bool sequencer_view_preview_poll(bContext *C)
+bool sequencer_view_has_preview_poll(bContext *C)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
if (sseq == NULL) {
@@ -231,6 +231,26 @@ bool sequencer_view_preview_poll(bContext *C)
return true;
}
+bool sequencer_view_preview_only_poll(const bContext *C)
+{
+ SpaceSeq *sseq = CTX_wm_space_seq(C);
+ if (sseq == NULL) {
+ return false;
+ }
+ if (SEQ_editing_get(CTX_data_scene(C)) == NULL) {
+ return false;
+ }
+ if (!(ELEM(sseq->view, SEQ_VIEW_PREVIEW) && (sseq->mainb == SEQ_DRAW_IMG_IMBUF))) {
+ return false;
+ }
+ ARegion *region = CTX_wm_region(C);
+ if (!(region && region->regiontype == RGN_TYPE_PREVIEW)) {
+ return false;
+ }
+
+ return true;
+}
+
bool sequencer_view_strips_poll(bContext *C)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
@@ -1710,8 +1730,11 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op))
SEQ_prefetch_stop(scene);
- const bool is_preview = sequencer_view_preview_poll(C);
+ 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);
}
@@ -3438,7 +3461,7 @@ void SEQUENCER_OT_cursor_set(wmOperatorType *ot)
/* api callbacks */
ot->exec = sequencer_set_2d_cursor_exec;
ot->invoke = sequencer_set_2d_cursor_invoke;
- ot->poll = sequencer_view_preview_poll;
+ ot->poll = sequencer_view_has_preview_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;