diff options
author | Alan Troth <Al> | 2020-06-16 09:44:05 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-06-16 09:45:53 +0300 |
commit | a64b8aca394fbff622309613d7efef2cae28c0d4 (patch) | |
tree | 4425b0259045f83fc1b2142e7165f11977765292 /source/blender/editors/transform/transform.c | |
parent | f72419b9ae0335a84d50840c316e0e2fb915f907 (diff) |
Fix T61777: Proportional editing doesn't work with multi edit-mode
Diffstat (limited to 'source/blender/editors/transform/transform.c')
-rw-r--r-- | source/blender/editors/transform/transform.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index d7da0cfba5c..b02b1814c67 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1917,6 +1917,27 @@ bool initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve return 0; } + /* When proportional editing is enabled, data_len_all can be non zero when + * nothing is selected, if this is the case we can end the transform early. + * + * By definition transform-data has selected items in beginning, + * so only the first item in each container needs to be checked + * when looking for the presence of selected data. */ + if (t->flag & T_PROP_EDIT) { + bool has_selected_any = false; + FOREACH_TRANS_DATA_CONTAINER (t, tc) { + if (tc->data->flag & TD_SELECTED) { + has_selected_any = true; + break; + } + } + + if (!has_selected_any) { + postTrans(C, t); + return 0; + } + } + if (event) { /* keymap for shortcut header prints */ t->keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap); |