diff options
3 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c index a714dd0f061..a5deb47a753 100644 --- a/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c +++ b/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c @@ -267,6 +267,9 @@ static int manipulator_grab_modal( if (WM_manipulator_target_property_is_valid(mpr_prop)) { WM_manipulator_target_property_value_set_array(C, mpr, mpr_prop, grab->prop_co); } + else { + zero_v3(grab->prop_co); + } ED_region_tag_redraw(ar); @@ -326,7 +329,12 @@ static int manipulator_grab_test_select( static void manipulator_grab_property_update(wmManipulator *mpr, wmManipulatorProperty *mpr_prop) { GrabManipulator3D *grab = (GrabManipulator3D *)mpr; - WM_manipulator_target_property_value_get_array(mpr, mpr_prop, grab->prop_co); + if (WM_manipulator_target_property_is_valid(mpr_prop)) { + WM_manipulator_target_property_value_get_array(mpr, mpr_prop, grab->prop_co); + } + else { + zero_v3(grab->prop_co); + } } static int manipulator_grab_cursor_get(wmManipulator *UNUSED(mpr)) diff --git a/source/blender/editors/space_view3d/view3d_manipulator_lamp.c b/source/blender/editors/space_view3d/view3d_manipulator_lamp.c index 9454ff1e158..a1646325e45 100644 --- a/source/blender/editors/space_view3d/view3d_manipulator_lamp.c +++ b/source/blender/editors/space_view3d/view3d_manipulator_lamp.c @@ -295,4 +295,4 @@ void VIEW3D_WGT_lamp_target(wmManipulatorGroupType *wgt) wgt->draw_prepare = WIDGETGROUP_lamp_target_draw_prepare; } -/** \} */
\ No newline at end of file +/** \} */ diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h index 8682ec4e390..bf5c38b9e39 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h @@ -75,7 +75,6 @@ struct wmManipulator *wm_manipulatorgroup_find_intersected_mainpulator( void wm_manipulatorgroup_intersectable_manipulators_to_list( const struct wmManipulatorGroup *mgroup, struct ListBase *listbase); void wm_manipulatorgroup_ensure_initialized(struct wmManipulatorGroup *mgroup, const struct bContext *C); -bool wm_manipulatorgroup_is_initialized(const wmManipulatorGroup *mgroup); bool wm_manipulatorgroup_is_visible(const struct wmManipulatorGroup *mgroup, const struct bContext *C); bool wm_manipulatorgroup_is_visible_in_drawstep( const struct wmManipulatorGroup *mgroup, const eWM_ManipulatorMapDrawStep drawstep); @@ -138,4 +137,4 @@ void wm_manipulatormap_select_array_shrink(struct wmManipulatorMap *mmap, int le void wm_manipulatormap_select_array_push_back(struct wmManipulatorMap *mmap, wmManipulator *mpr); void wm_manipulatormap_select_array_remove(struct wmManipulatorMap *mmap, wmManipulator *mpr); -#endif
\ No newline at end of file +#endif |