Fix T91700: Strips can be transformed in scope display modes

Hide gizmos & prevent transform & selection in scope display.
This commit is contained in:
Campbell Barton 2021-10-18 19:28:17 +11:00
parent 4f3f79c382
commit 746ee29d36
Notes: blender-bot 2023-04-14 09:18:04 +02:00
Referenced by issue #91700, VSE: Transform Tools should not have effect in non-image display modes
4 changed files with 21 additions and 2 deletions

View File

@ -786,11 +786,19 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
View2D *v2d = UI_view2d_fromcontext(C);
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
ARegion *region = CTX_wm_region(C);
if (ed == NULL) {
return OPERATOR_CANCELLED;
}
if (region->regiontype == RGN_TYPE_PREVIEW) {
const SpaceSeq *sseq = CTX_wm_space_seq(C);
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return OPERATOR_CANCELLED;
}
}
bool extend = RNA_boolean_get(op->ptr, "extend");
bool deselect = RNA_boolean_get(op->ptr, "deselect");
bool deselect_all = RNA_boolean_get(op->ptr, "deselect_all");
@ -801,7 +809,6 @@ static int sequencer_select_exec(bContext *C, wmOperator *op)
mval[0] = RNA_int_get(op->ptr, "mouse_x");
mval[1] = RNA_int_get(op->ptr, "mouse_y");
ARegion *region = CTX_wm_region(C);
int handle_clicked = SEQ_SIDE_NONE;
Sequence *seq = NULL;
if (region->regiontype == RGN_TYPE_PREVIEW) {

View File

@ -111,7 +111,9 @@ void recalcData_cursor_image(TransInfo *t)
void createTransCursor_sequencer(TransInfo *t)
{
SpaceSeq *sseq = t->area->spacedata.first;
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return;
}
createTransCursor_2D_impl(t, sseq->cursor);
}

View File

@ -123,6 +123,13 @@ void createTransSeqImageData(TransInfo *t)
return;
}
{
const SpaceSeq *sseq = t->area->spacedata.first;
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return;
}
}
ListBase *seqbase = SEQ_active_seqbase_get(ed);
SeqCollection *strips = SEQ_query_rendered_strips(seqbase, t->scene->r.cfra, 0);
SEQ_filter_selected_strips(strips);

View File

@ -96,6 +96,9 @@ static bool gizmo2d_generic_poll(const bContext *C, wmGizmoGroupType *gzgt)
if (sseq->gizmo_flag & (SEQ_GIZMO_HIDE | SEQ_GIZMO_HIDE_TOOL)) {
return false;
}
if (sseq->mainb != SEQ_DRAW_IMG_IMBUF) {
return false;
}
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
if (ed == NULL) {