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.
This commit is contained in:
parent
61f0941321
commit
a4df7f78a8
Notes:
blender-bot
2023-10-18 15:23:11 +02:00
Referenced by issue #75398, Repeat (Shift R) scaling vertex (two or more) to the selected vertex (scale x 0) on axis does not work correctly. Referenced by issue #71455, Transform: Redo doesn't work properly in Video Sequencer time manipulation
|
@ -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;
|
||||
|
|
|
@ -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], ¢er[0], ¢er[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 */
|
||||
|
|
Loading…
Reference in New Issue