Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Troth <Al>2020-06-16 09:44:05 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-06-16 09:45:53 +0300
commita64b8aca394fbff622309613d7efef2cae28c0d4 (patch)
tree4425b0259045f83fc1b2142e7165f11977765292 /source/blender/editors/transform/transform.c
parentf72419b9ae0335a84d50840c316e0e2fb915f907 (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.c21
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);