From ea39d808b516ff5b7b6465707ecfd5e875cce3cc Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 13 Jun 2022 16:17:32 +0200 Subject: [PATCH] Fix T98765: Regression: Unable to select mask points in clip editor Re-organize de-selection so that there is less conflict between tracking and masking operators. Still not fully ideal: the LMB selection does not de-select everything now since the `mask.select` with `deselect_all` is only added to the keymap when the RMB is the select mouse. While this is sub-optimal, this seems to be how mask selection behaved in the Image Editor in 3.1. Not sure it worth looking into a more complete fix, as it will likely be too big to be safe for a corrective release. Differential Revision: https://developer.blender.org/D15183 --- source/blender/editors/mask/mask_select.c | 9 +++------ source/blender/editors/space_clip/tracking_select.c | 2 -- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/source/blender/editors/mask/mask_select.c b/source/blender/editors/mask/mask_select.c index 7c0b6fb0a93..e5fe108b6cd 100644 --- a/source/blender/editors/mask/mask_select.c +++ b/source/blender/editors/mask/mask_select.c @@ -364,12 +364,9 @@ static int select_exec(bContext *C, wmOperator *op) return OPERATOR_PASS_THROUGH | OPERATOR_FINISHED; } if (deselect_all) { - /* For clip editor tracks, leave deselect all to clip editor. */ - if (!ED_clip_can_select(C)) { - ED_mask_deselect_all(C); - ED_mask_view_lock_state_restore_no_jump(C, &lock_state); - return OPERATOR_PASS_THROUGH | OPERATOR_FINISHED; - } + ED_mask_deselect_all(C); + ED_mask_view_lock_state_restore_no_jump(C, &lock_state); + return OPERATOR_PASS_THROUGH | OPERATOR_FINISHED; } return OPERATOR_PASS_THROUGH; diff --git a/source/blender/editors/space_clip/tracking_select.c b/source/blender/editors/space_clip/tracking_select.c index bbfbbd2cc58..28e304bfa74 100644 --- a/source/blender/editors/space_clip/tracking_select.c +++ b/source/blender/editors/space_clip/tracking_select.c @@ -394,8 +394,6 @@ static int select_exec(bContext *C, wmOperator *op) else if (deselect_all) { ed_tracking_deselect_all_tracks(tracksbase); ed_tracking_deselect_all_plane_tracks(plane_tracks_base); - /* Mask as well if we are in combined mask / track view. */ - ED_mask_deselect_all(C); } ED_clip_view_lock_state_restore_no_jump(C, &lock_state);