diff options
author | YimingWu <xp8110@outlook.com> | 2019-07-25 09:34:45 +0300 |
---|---|---|
committer | YimingWu <xp8110@outlook.com> | 2019-07-25 09:34:45 +0300 |
commit | 9e4cc7c6301f97ab74abb58caa6a9db7f2862fe9 (patch) | |
tree | 39ab3f26284250b558dca85b5b79d72182ac13c9 /source/blender/editors | |
parent | caab047f9c649e261cb0d8f0fa8fb06e0c1b1ca6 (diff) | |
parent | e51943bd7326a14c684a100690a6652dd9e1b931 (diff) |
Merge remote-tracking branch 'origin/master' into soc-2019-npr
Diffstat (limited to 'source/blender/editors')
5 files changed, 28 insertions, 19 deletions
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index b93d52a1b2d..7e913014a87 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1705,7 +1705,7 @@ static void ANIM_OT_channels_ungroup(wmOperatorType *ot) /* ******************** Delete Channel Operator *********************** */ -static void update_dependencies_on_delete(bAnimListElem *ale) +static void tag_update_animation_element(bAnimListElem *ale) { ID *id = ale->id; AnimData *adt = BKE_animdata_from_id(id); @@ -1801,7 +1801,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *UNUSED(op)) /* try to free F-Curve */ ANIM_fcurve_delete_from_animdata(&ac, adt, fcu); - update_dependencies_on_delete(ale); + tag_update_animation_element(ale); break; } case ANIMTYPE_NLACURVE: { @@ -1823,7 +1823,7 @@ static int animchannels_delete_exec(bContext *C, wmOperator *UNUSED(op)) /* unlink and free the F-Curve */ BLI_remlink(&strip->fcurves, fcu); free_fcurve(fcu); - update_dependencies_on_delete(ale); + tag_update_animation_element(ale); break; } case ANIMTYPE_GPLAYER: { @@ -1967,6 +1967,7 @@ static void setflag_anim_channels(bAnimContext *ac, /* set the setting in the appropriate way */ ANIM_channel_setting_set(ac, ale, setting, mode); + tag_update_animation_element(ale); /* if flush status... */ if (flush) { diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index e5704879370..add074985b1 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -4593,7 +4593,8 @@ static int edbm_fill_grid_exec(bContext *C, wmOperator *op) /* Only reuse on redo because these settings need to match the current selection. * We never want to use them on other geometry, repeat last for eg, see: T60777. */ - if ((op->flag & OP_IS_REPEAT_LAST) == 0 && RNA_property_is_set(op->ptr, prop_span)) { + if (((op->flag & OP_IS_INVOKE) || (op->flag & OP_IS_REPEAT_LAST) == 0) && + RNA_property_is_set(op->ptr, prop_span)) { span = RNA_property_int_get(op->ptr, prop_span); span = min_ii(span, (clamp / 2) - 1); calc_span = false; diff --git a/source/blender/editors/space_clip/tracking_ops_solve.c b/source/blender/editors/space_clip/tracking_ops_solve.c index 4490655393e..ab8a74715fa 100644 --- a/source/blender/editors/space_clip/tracking_ops_solve.c +++ b/source/blender/editors/space_clip/tracking_ops_solve.c @@ -122,8 +122,14 @@ static void solve_camera_freejob(void *scv) solved = BKE_tracking_reconstruction_finish(scj->context, tracking); if (!solved) { - BKE_report( - scj->reports, RPT_WARNING, "Some data failed to reconstruct (see console for details)"); + const char *error_message = BKE_tracking_reconstruction_error_message_get(scj->context); + if (error_message[0]) { + BKE_report(scj->reports, RPT_ERROR, error_message); + } + else { + BKE_report( + scj->reports, RPT_WARNING, "Some data failed to reconstruct (see console for details)"); + } } else { BKE_reportf(scj->reports, diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index a316567fc63..6add395361e 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -2157,16 +2157,6 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) } } - /* do we check for parameter? */ - if (transformModeUseSnap(t)) { - if (t->modifiers & MOD_SNAP) { - ts->snap_flag |= SCE_SNAP; - } - else { - ts->snap_flag &= ~SCE_SNAP; - } - } - if (t->spacetype == SPACE_VIEW3D) { if ((prop = RNA_struct_find_property(op->ptr, "orient_type")) && !RNA_property_is_set(op->ptr, prop) && @@ -2180,6 +2170,18 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) } } + if (t->flag & T_MODAL) { + /* do we check for parameter? */ + if (transformModeUseSnap(t)) { + if (t->modifiers & MOD_SNAP) { + ts->snap_flag |= SCE_SNAP; + } + else { + ts->snap_flag &= ~SCE_SNAP; + } + } + } + if ((prop = RNA_struct_find_property(op->ptr, "use_proportional_edit"))) { RNA_property_boolean_set(op->ptr, prop, proportional & PROP_EDIT_USE); RNA_boolean_set(op->ptr, "use_proportional_connected", proportional & PROP_EDIT_CONNECTED); diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index 208242d53b3..3a204d0d157 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -263,9 +263,8 @@ static void axisProjection(const TransInfo *t, /* Use ray-ray intersection instead of line-line because this gave * precision issues adding small values to large numbers. */ float mul; - if (isect_ray_ray_v3(v, norm, t_con_center, axis, &mul, NULL)) { - madd_v3_v3v3fl(out, t_con_center, axis, mul); - sub_v3_v3(out, t_con_center); + if (isect_ray_ray_v3(t_con_center, axis, v, norm, &mul, NULL)) { + mul_v3_v3fl(out, axis, mul); } else { /* In practice this should never fail. */ |