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:
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
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.
-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 */