From 2f1b891dd9d2e9756b2422add075d98d8b9bbe1d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 12 Dec 2019 18:37:51 +1100 Subject: Fix tool fallback being ignored with transform gizmos This only worked once the gizmo was displayed. --- .../blender/editors/transform/transform_gizmo_3d.c | 48 +++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c index 336f9974e7d..f19147baa89 100644 --- a/source/blender/editors/transform/transform_gizmo_3d.c +++ b/source/blender/editors/transform/transform_gizmo_3d.c @@ -1743,6 +1743,13 @@ static void WIDGETGROUP_gizmo_refresh(const bContext *C, wmGizmoGroup *gzgroup) RegionView3D *rv3d = ar->regiondata; struct TransformBounds tbounds; + if (scene->toolsettings->workspace_tool_type == SCE_WORKSPACE_TOOL_FALLBACK) { + gzgroup->use_fallback_keymap = true; + } + else { + gzgroup->use_fallback_keymap = false; + } + if (ggd->use_twtype_refresh) { ggd->twtype = v3d->gizmo_show_object & ggd->twtype_init; if (ggd->twtype != ggd->twtype_prev) { @@ -1829,13 +1836,6 @@ static void WIDGETGROUP_gizmo_refresh(const bContext *C, wmGizmoGroup *gzgroup) for (int i = MAN_AXIS_RANGE_ROT_START; i < MAN_AXIS_RANGE_ROT_END; i++) { ggd->gizmos[i]->select_bias = rotate_select_bias; } - - if (scene->toolsettings->workspace_tool_type == SCE_WORKSPACE_TOOL_FALLBACK) { - gzgroup->use_fallback_keymap = true; - } - else { - gzgroup->use_fallback_keymap = false; - } } static void WIDGETGROUP_gizmo_message_subscribe(const bContext *C, @@ -2176,6 +2176,13 @@ static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmGizmoGroup *gzgr struct TransformBounds tbounds; + if (scene->toolsettings->workspace_tool_type == SCE_WORKSPACE_TOOL_FALLBACK) { + gzgroup->use_fallback_keymap = true; + } + else { + gzgroup->use_fallback_keymap = false; + } + const TransformOrientationSlot *orient_slot = BKE_scene_orientation_slot_get(scene, SCE_ORIENT_SCALE); @@ -2231,13 +2238,6 @@ static void WIDGETGROUP_xform_cage_refresh(const bContext *C, wmGizmoGroup *gzgr /* Needed to test view orientation changes. */ copy_m3_m4(xgzgroup->prev.viewinv_m3, rv3d->viewinv); - - if (scene->toolsettings->workspace_tool_type == SCE_WORKSPACE_TOOL_FALLBACK) { - gzgroup->use_fallback_keymap = true; - } - else { - gzgroup->use_fallback_keymap = false; - } } static void WIDGETGROUP_xform_cage_message_subscribe(const bContext *C, @@ -2388,6 +2388,16 @@ static void WIDGETGROUP_xform_shear_refresh(const bContext *C, wmGizmoGroup *gzg struct XFormShearWidgetGroup *xgzgroup = gzgroup->customdata; struct TransformBounds tbounds; + if (scene->toolsettings->workspace_tool_type == SCE_WORKSPACE_TOOL_FALLBACK) { + gzgroup->use_fallback_keymap = true; + } + else { + gzgroup->use_fallback_keymap = false; + } + + /* Needed to test view orientation changes. */ + copy_m3_m4(xgzgroup->prev.viewinv_m3, rv3d->viewinv); + const TransformOrientationSlot *orient_slot = BKE_scene_orientation_slot_get(scene, SCE_ORIENT_ROTATE); @@ -2440,16 +2450,6 @@ static void WIDGETGROUP_xform_shear_refresh(const bContext *C, wmGizmoGroup *gzg WM_gizmo_set_flag(gz, WM_GIZMO_HIDDEN, false); } } - - /* Needed to test view orientation changes. */ - copy_m3_m4(xgzgroup->prev.viewinv_m3, rv3d->viewinv); - - if (scene->toolsettings->workspace_tool_type == SCE_WORKSPACE_TOOL_FALLBACK) { - gzgroup->use_fallback_keymap = true; - } - else { - gzgroup->use_fallback_keymap = false; - } } static void WIDGETGROUP_xform_shear_message_subscribe(const bContext *C, -- cgit v1.2.3