From 4fceaf3848b6ff926a8f0ffdb8f5a7b1537da57b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 18 Dec 2018 11:57:12 +1100 Subject: Fix gizmos showing for non-visible objects Active object gizmos were showing even when the object wasn't visible (local view or with their object type disabled). --- .../editors/space_view3d/view3d_gizmo_forcefield.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'source/blender/editors/space_view3d/view3d_gizmo_forcefield.c') diff --git a/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c b/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c index e2a8d2802e7..0e3d214ae3c 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c @@ -62,9 +62,15 @@ static bool WIDGETGROUP_forcefield_poll(const bContext *C, wmGizmoGroupType *UNU return false; } - Object *ob = CTX_data_active_object(C); - - return (ob && ob->pd && ob->pd->forcefield); + ViewLayer *view_layer = CTX_data_view_layer(C); + Base *base = BASACT(view_layer); + if (base && BASE_VISIBLE(v3d, base)) { + Object *ob = base->object; + if (ob->pd && ob->pd->forcefield) { + return true; + } + } + return false; } static void WIDGETGROUP_forcefield_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup) @@ -87,7 +93,8 @@ static void WIDGETGROUP_forcefield_refresh(const bContext *C, wmGizmoGroup *gzgr { wmGizmoWrapper *wwrapper = gzgroup->customdata; wmGizmo *gz = wwrapper->gizmo; - Object *ob = CTX_data_active_object(C); + ViewLayer *view_layer = CTX_data_view_layer(C); + Object *ob = OBACT(view_layer); PartDeflect *pd = ob->pd; if (pd->forcefield == PFIELD_WIND) { -- cgit v1.2.3