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
path: root/source
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2020-04-27 18:07:07 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2020-04-27 18:07:29 +0300
commita4df7f78a8816ca463cb09f23ac64b989cd8ebb0 (patch)
treef51e7aaf39256ccd783928a27eb5212461378189 /source
parent61f094132126d7c1552ac0675488b2a3ec3af4bd (diff)
Fix T75398: Redo with Shift R always uses the previous pivot center
Overwriting the pivot center was an attempt to fix T71455. The solution now is to save the direction in the "mirror" property.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/transform/transform.c5
-rw-r--r--source/blender/editors/transform/transform_convert.c12
2 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index d0866968daa..d376c71d867 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1651,11 +1651,6 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
}
}
- if ((prop = RNA_struct_find_property(op->ptr, "center_override"))) {
- /* Important for redo operations. */
- RNA_property_float_set_array(op->ptr, prop, t->center_global);
- }
-
if (t->flag & T_PROP_EDIT_ALL) {
if (t->flag & T_PROP_EDIT) {
proportional |= PROP_EDIT_USE;
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c
index 14f9365096d..4ae6964f739 100644
--- a/source/blender/editors/transform/transform_convert.c
+++ b/source/blender/editors/transform/transform_convert.c
@@ -823,17 +823,25 @@ void clipUVData(TransInfo *t)
*/
char transform_convert_frame_side_dir_get(TransInfo *t, float cframe)
{
+ char r_dir;
Scene *scene = t->scene;
float center[2];
if (t->flag & T_MODAL) {
UI_view2d_region_to_view(
(View2D *)t->view, t->mouse.imval[0], t->mouse.imval[1], &center[0], &center[1]);
+ r_dir = (center[0] > cframe) ? 'R' : 'L';
+ {
+ /* XXX: This saves the direction in the "mirror" property to be used for redo! */
+ if (r_dir == 'R') {
+ t->flag |= T_NO_MIRROR;
+ }
+ }
}
else {
- copy_v2_v2(center, t->center_global);
+ r_dir = (t->flag & T_NO_MIRROR) ? 'R' : 'L';
}
- return (center[0] > cframe) ? 'R' : 'L';
+ return r_dir;
}
/* This function tests if a point is on the "mouse" side of the cursor/frame-marking */