diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2020-02-27 22:42:34 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2020-02-27 22:42:43 +0300 |
commit | 91abb70006866e651233ff44f0f275856a6bf65d (patch) | |
tree | 18b08c7bb03f334a97f53df639ea2dcc8f06925d /source/blender/editors | |
parent | c20caec7f0b39b7d15bd600880ea9534c31f6732 (diff) |
Transform: Remove 'mouse_coordinate_override' property
This property depends on the view that can change when redoing.
Diffstat (limited to 'source/blender/editors')
10 files changed, 47 insertions, 65 deletions
diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h index c66967a9365..d53ad7c4229 100644 --- a/source/blender/editors/include/ED_transform.h +++ b/source/blender/editors/include/ED_transform.h @@ -153,7 +153,6 @@ int BIF_countTransformOrientation(const struct bContext *C); #define P_GPENCIL_EDIT (1 << 13) #define P_CURSOR_EDIT (1 << 14) #define P_CLNOR_INVALIDATE (1 << 15) -#define P_MOUSE (1 << 16) void Transform_Properties(struct wmOperatorType *ot, int flags); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index bc81817647e..ed42a0e35f3 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1635,9 +1635,9 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) } } - if ((prop = RNA_struct_find_property(op->ptr, "mouse_coordinate_override"))) { + if ((prop = RNA_struct_find_property(op->ptr, "center_override"))) { /* Important for redo operations. */ - RNA_property_int_set_array(op->ptr, prop, t->mouse.imval); + RNA_property_float_set_array(op->ptr, prop, t->center_global); } if (t->flag & T_PROP_EDIT_ALL) { diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index 027ae04795a..78e785e0e71 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -69,6 +69,8 @@ #include "ED_clip.h" #include "ED_mask.h" +#include "UI_view2d.h" + #include "WM_api.h" /* for WM_event_add_notifier to deal with stabilization nodes */ #include "WM_types.h" @@ -787,6 +789,19 @@ void clipUVData(TransInfo *t) /* ********************* ANIMATION EDITORS (GENERAL) ************************* */ +/* In modal, `t->center_global` may not have been inited yet. */ +void transform_convert_center_global_v2(TransInfo *t, float r_center[2]) +{ + /* In modal, `t->center2d` may not have been inited yet. */ + if (t->flag & T_MODAL) { + UI_view2d_region_to_view( + (View2D *)t->view, t->mouse.imval[0], t->mouse.imval[1], &r_center[0], &r_center[1]); + } + else { + copy_v2_v2(r_center, t->center_global); + } +} + /* This function tests if a point is on the "mouse" side of the cursor/frame-marking */ bool FrameOnMouseSide(char side, float frame, float cframe) { diff --git a/source/blender/editors/transform/transform_convert.h b/source/blender/editors/transform/transform_convert.h index 075bf0a5a4b..4c12b91c2b4 100644 --- a/source/blender/editors/transform/transform_convert.h +++ b/source/blender/editors/transform/transform_convert.h @@ -104,6 +104,7 @@ void transform_around_single_fallback(TransInfo *t); bool constraints_list_needinv(TransInfo *t, ListBase *list); void calc_distanceCurveVerts(TransData *head, TransData *tail); struct TransDataCurveHandleFlags *initTransDataCurveHandles(TransData *td, struct BezTriple *bezt); +void transform_convert_center_global_v2(TransInfo *t, float r_center[2]); bool FrameOnMouseSide(char side, float frame, float cframe); /* transform_convert_action.c */ diff --git a/source/blender/editors/transform/transform_convert_action.c b/source/blender/editors/transform/transform_convert_action.c index 0b1d2757435..42e8523d4cb 100644 --- a/source/blender/editors/transform/transform_convert_action.c +++ b/source/blender/editors/transform/transform_convert_action.c @@ -36,8 +36,6 @@ #include "ED_anim_api.h" -#include "UI_view2d.h" - #include "transform.h" #include "transform_convert.h" @@ -333,11 +331,10 @@ void createTransActionData(bContext *C, TransInfo *t) /* which side of the current frame should be allowed */ if (t->mode == TFM_TIME_EXTEND) { - /* only side on which mouse is gets transformed */ - float xmouse, ymouse; - - UI_view2d_region_to_view(&ac.ar->v2d, t->mouse.imval[0], t->mouse.imval[1], &xmouse, &ymouse); - t->frame_side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side + /* only side on which center is gets transformed */ + float center[2]; + transform_convert_center_global_v2(t, center); + t->frame_side = (center[0] > CFRA) ? 'R' : 'L'; } else { /* normal transform - both sides of current frame are considered */ diff --git a/source/blender/editors/transform/transform_convert_graph.c b/source/blender/editors/transform/transform_convert_graph.c index f6f982e854a..502679efedf 100644 --- a/source/blender/editors/transform/transform_convert_graph.c +++ b/source/blender/editors/transform/transform_convert_graph.c @@ -1,4 +1,4 @@ -/* +/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 @@ -261,11 +261,10 @@ void createTransGraphEditData(bContext *C, TransInfo *t) /* which side of the current frame should be allowed */ // XXX we still want this mode, but how to get this using standard transform too? if (t->mode == TFM_TIME_EXTEND) { - /* only side on which mouse is gets transformed */ - float xmouse, ymouse; - - UI_view2d_region_to_view(v2d, t->mouse.imval[0], t->mouse.imval[1], &xmouse, &ymouse); - t->frame_side = (xmouse > CFRA) ? 'R' : 'L'; // XXX use t->frame_side + /* only side on which center is gets transformed */ + float center[2]; + transform_convert_center_global_v2(t, center); + t->frame_side = (center[0] > CFRA) ? 'R' : 'L'; } else { /* normal transform - both sides of current frame are considered */ diff --git a/source/blender/editors/transform/transform_convert_nla.c b/source/blender/editors/transform/transform_convert_nla.c index 114968ec83f..7c34c583210 100644 --- a/source/blender/editors/transform/transform_convert_nla.c +++ b/source/blender/editors/transform/transform_convert_nla.c @@ -35,8 +35,6 @@ #include "ED_anim_api.h" -#include "UI_view2d.h" - #include "transform.h" #include "transform_convert.h" @@ -73,11 +71,10 @@ void createTransNlaData(bContext *C, TransInfo *t) /* which side of the current frame should be allowed */ if (t->mode == TFM_TIME_EXTEND) { - /* only side on which mouse is gets transformed */ - float xmouse, ymouse; - - UI_view2d_region_to_view(&ac.ar->v2d, t->mouse.imval[0], t->mouse.imval[1], &xmouse, &ymouse); - t->frame_side = (xmouse > CFRA) ? 'R' : 'L'; + /* only side on which center is gets transformed */ + float center[2]; + transform_convert_center_global_v2(t, center); + t->frame_side = (center[0] > CFRA) ? 'R' : 'L'; } else { /* normal transform - both sides of current frame are considered */ diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c index 4baf0e8a3cb..c11858b922a 100644 --- a/source/blender/editors/transform/transform_convert_sequencer.c +++ b/source/blender/editors/transform/transform_convert_sequencer.c @@ -31,8 +31,6 @@ #include "BKE_sequencer.h" #include "BKE_report.h" -#include "UI_view2d.h" - #include "transform.h" #include "transform_convert.h" @@ -526,14 +524,12 @@ void createTransSeqData(bContext *C, TransInfo *t) { #define XXX_DURIAN_ANIM_TX_HACK - View2D *v2d = UI_view2d_fromcontext(C); Scene *scene = t->scene; Editing *ed = BKE_sequencer_editing_get(t->scene, false); TransData *td = NULL; TransData2D *td2d = NULL; TransDataSeq *tdsq = NULL; TransSeq *ts = NULL; - int xmouse; int count = 0; @@ -545,18 +541,10 @@ void createTransSeqData(bContext *C, TransInfo *t) } tc->custom.type.free_cb = freeSeqData; - - xmouse = (int)UI_view2d_region_to_view_x(v2d, t->mouse.imval[0]); - - /* which side of the current frame should be allowed */ - if (t->mode == TFM_TIME_EXTEND) { - /* only side on which mouse is gets transformed */ - t->frame_side = (xmouse > CFRA) ? 'R' : 'L'; - } - else { - /* normal transform - both sides of current frame are considered */ - t->frame_side = 'B'; - } + /* only side on which center is gets transformed */ + float center[2]; + transform_convert_center_global_v2(t, center); + t->frame_side = (center[0] > CFRA) ? 'R' : 'L'; #ifdef XXX_DURIAN_ANIM_TX_HACK { @@ -599,7 +587,7 @@ void createTransSeqData(bContext *C, TransInfo *t) SeqTransDataBounds(t, ed->seqbasep, ts); /* set the snap mode based on how close the mouse is at the end/start points */ - if (abs(xmouse - ts->max) > abs(xmouse - ts->min)) { + if (abs(center[0] - ts->max) > abs(center[0] - ts->min)) { ts->snap_left = true; } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index c925f5c9a8e..7d9a122f802 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1374,17 +1374,6 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve bGPdata *gpd = CTX_data_gpencil_data(C); PropertyRNA *prop; - if (op && (prop = RNA_struct_find_property(op->ptr, "mouse_coordinate_override")) && - RNA_property_is_set(op->ptr, prop)) { - RNA_property_int_get_array(op->ptr, prop, t->mval); - } - else if (event) { - copy_v2_v2_int(t->mval, event->mval); - } - else { - zero_v2_int(t->mval); - } - t->depsgraph = CTX_data_depsgraph_pointer(C); t->scene = sce; t->view_layer = view_layer; @@ -1413,11 +1402,16 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve t->redraw = TREDRAW_HARD; /* redraw first time */ - t->mouse.imval[0] = t->mval[0]; - t->mouse.imval[1] = t->mval[1]; - - t->con.imval[0] = t->mouse.imval[0]; - t->con.imval[1] = t->mouse.imval[1]; + int mval[2]; + if (event) { + copy_v2_v2_int(mval, event->mval); + } + else { + zero_v2_int(mval); + } + copy_v2_v2_int(t->mval, mval); + copy_v2_v2_int(t->mouse.imval, mval); + copy_v2_v2_int(t->con.imval, mval); t->transform = NULL; t->handleEvent = NULL; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index d3d5d785eac..39f6f24eb8d 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -694,14 +694,6 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) RNA_def_property_ui_text(prop, "Center Override", "Force using this center value (when set)"); } - if (flags & P_MOUSE) { - prop = RNA_def_property(ot->srna, "mouse_coordinate_override", PROP_INT, PROP_XYZ); - RNA_def_property_array(prop, 2); - RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE); - RNA_def_property_ui_text( - prop, "Mouse Coordinate Override", "Force using this mouse value (when set)"); - } - if ((flags & P_NO_DEFAULTS) == 0) { prop = RNA_def_boolean(ot->srna, "release_confirm", @@ -1247,7 +1239,7 @@ static void TRANSFORM_OT_transform(struct wmOperatorType *ot) Transform_Properties(ot, P_ORIENT_AXIS | P_ORIENT_MATRIX | P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | - P_ALIGN_SNAP | P_GPENCIL_EDIT | P_CENTER | P_MOUSE); + P_ALIGN_SNAP | P_GPENCIL_EDIT | P_CENTER); } static int transform_from_gizmo_invoke(bContext *C, |