From d66b047ca39db33d91ae8a0435981d2a4b676d56 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 3 Mar 2022 20:31:18 +1100 Subject: [PATCH] WM: use pass-through for cursor placement operator This is needed since 4d0f846b936c9101ecb76a6db962aac2d74a460a however change in the operator instead of the event handler is correct, as accepting a press event should suppress drag events unless the pass-through flag is set. This is how select & tweak already works. --- source/blender/editors/space_clip/clip_ops.c | 3 ++- source/blender/editors/space_sequencer/sequencer_edit.c | 3 ++- source/blender/editors/space_view3d/view3d_edit.c | 3 ++- source/blender/editors/uvedit/uvedit_ops.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index 311f3719864..e61c264ca06 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -1779,7 +1779,8 @@ static int clip_set_2d_cursor_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CLIP, NULL); - return OPERATOR_FINISHED; + /* Use pass-through to allow click-drag to transform the cursor. */ + return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH; } static int clip_set_2d_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event) diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index c1abc97fdb7..a95980f99eb 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -3510,7 +3510,8 @@ static int sequencer_set_2d_cursor_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_SPACE | ND_SPACE_SEQUENCER, NULL); - return OPERATOR_FINISHED; + /* Use pass-through to allow click-drag to transform the cursor. */ + return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH; } static int sequencer_set_2d_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event) diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 5adce170e06..b4cf08f69fe 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1063,7 +1063,8 @@ static int view3d_cursor3d_invoke(bContext *C, wmOperator *op, const wmEvent *ev const enum eV3DCursorOrient orientation = RNA_enum_get(op->ptr, "orientation"); ED_view3d_cursor3d_update(C, event->mval, use_depth, orientation); - return OPERATOR_FINISHED; + /* Use pass-through to allow click-drag to transform the cursor. */ + return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH; } void VIEW3D_OT_cursor3d(wmOperatorType *ot) diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index ccaabe18620..0742b612b97 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -1739,7 +1739,8 @@ static int uv_set_2d_cursor_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_SPACE | ND_SPACE_IMAGE, NULL); - return OPERATOR_FINISHED; + /* Use pass-through to allow click-drag to transform the cursor. */ + return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH; } static int uv_set_2d_cursor_invoke(bContext *C, wmOperator *op, const wmEvent *event)