From 6b6105a87ebf9f81f981d8624535690aef8a798b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 21 Nov 2018 15:35:29 +1100 Subject: Gizmo: run invoke_prepare even when the gizmo isn't modal This is useful for setting up state for gizmos that run operators too. --- source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'source/blender/windowmanager/gizmo') diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c index ede0f7c96ea..ec8e012b1a7 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c @@ -945,12 +945,14 @@ void wm_gizmomap_modal_set( WM_tooltip_clear(C, win); + /* Use even if we don't have invoke, so we can setup data before an operator runs. */ + if (gz->parent_gzgroup->type->invoke_prepare) { + gz->parent_gzgroup->type->invoke_prepare(C, gz->parent_gzgroup, gz); + } + if (gz->type->invoke && (gz->type->modal || gz->custom_modal)) { - if (gz->parent_gzgroup->type->invoke_prepare) { - gz->parent_gzgroup->type->invoke_prepare(C, gz->parent_gzgroup, gz); - } const int retval = gz->type->invoke(C, gz, event); if ((retval & OPERATOR_RUNNING_MODAL) == 0) { return; -- cgit v1.2.3