From 04a07d5e08cb27fc8edc1b75eae81f2bbad53c98 Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Mon, 7 Aug 2023 15:11:25 -0300 Subject: [PATCH] Fix #110821: Tracker resizing with S+S also resizes search area Regression caused by 03f17c42d0 In that commit it was assumed that the hotkey modifier `S` had no influence if we were already resizing. But this is not the case in tracking. The second `S` has influence and should not be filtered. The solution is to add a conditional only to Trackers transformation. This commit also fixed the canceling of this transformation which did not revert the search area to its original value. --- source/blender/editors/transform/transform.cc | 4 +++- .../blender/editors/transform/transform_convert_tracking.cc | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/transform/transform.cc b/source/blender/editors/transform/transform.cc index d7e7a66709f..747fb1e2abe 100644 --- a/source/blender/editors/transform/transform.cc +++ b/source/blender/editors/transform/transform.cc @@ -650,7 +650,9 @@ static bool transform_modal_item_poll(const wmOperator *op, int value) return false; } if (value == TFM_MODAL_RESIZE && t->mode == TFM_RESIZE) { - return false; + /* The tracking transform in MovieClip has an alternate resize that only affects the + * tracker size and not the search area. */ + return t->data_type == &TransConvertType_Tracking; } if (value == TFM_MODAL_VERT_EDGE_SLIDE && (t->data_type != &TransConvertType_Mesh || diff --git a/source/blender/editors/transform/transform_convert_tracking.cc b/source/blender/editors/transform/transform_convert_tracking.cc index 72858e6e1d1..6e65040d94d 100644 --- a/source/blender/editors/transform/transform_convert_tracking.cc +++ b/source/blender/editors/transform/transform_convert_tracking.cc @@ -481,7 +481,7 @@ static void flushTransTracking(TransInfo *t) if (t->flag & T_ALT_TRANSFORM) { if (t->mode == TFM_RESIZE) { - if (tdt->area != TRACK_AREA_PAT) { + if (tdt->area != TRACK_AREA_PAT && !(t->state == TRANS_CANCEL)) { continue; } }