diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-09-18 09:10:07 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-09-18 09:15:06 +0300 |
commit | d421adb83e8d39bd9d74ea3d526326b70e93c341 (patch) | |
tree | 4c5e16b5e2fcd8c587204aa85dde175a6951392a /source/blender/editors/space_view3d | |
parent | 0a3b66cfb573a91ba3b19f30ead4a026bdfa6873 (diff) |
Gizmo: de-duplicate poll logic
Checking the active tool or operator was a common way to check
if the gizmo was still in use.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_gizmo_preselect.c | 29 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_gizmo_ruler.c | 15 |
2 files changed, 5 insertions, 39 deletions
diff --git a/source/blender/editors/space_view3d/view3d_gizmo_preselect.c b/source/blender/editors/space_view3d/view3d_gizmo_preselect.c index 7987134e84b..7b8e3a76c85 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_preselect.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_preselect.c @@ -30,6 +30,7 @@ #include "BKE_context.h" +#include "ED_gizmo_utils.h" #include "ED_screen.h" #include "UI_resources.h" @@ -49,18 +50,6 @@ struct GizmoGroupPreSelElem { wmGizmo *gizmo; }; -static bool WIDGETGROUP_mesh_preselect_elem_poll(const bContext *C, wmGizmoGroupType *gzgt) -{ - bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); - if ((tref_rt == NULL) || - !STREQ(gzgt->idname, tref_rt->gizmo_group)) - { - WM_gizmo_group_type_unlink_delayed_ptr(gzgt); - return false; - } - return true; -} - static void WIDGETGROUP_mesh_preselect_elem_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup) { const wmGizmoType *gzt_presel = WM_gizmotype_find("GIZMO_GT_mesh_preselect_elem_3d", true); @@ -82,7 +71,7 @@ void VIEW3D_GGT_mesh_preselect_elem(wmGizmoGroupType *gzgt) gzgt->gzmap_params.spaceid = SPACE_VIEW3D; gzgt->gzmap_params.regionid = RGN_TYPE_WINDOW; - gzgt->poll = WIDGETGROUP_mesh_preselect_elem_poll; + gzgt->poll = ED_gizmo_poll_or_unlink_delayed_from_tool; gzgt->setup = WIDGETGROUP_mesh_preselect_elem_setup; } @@ -97,18 +86,6 @@ struct GizmoGroupPreSelEdgeRing { wmGizmo *gizmo; }; -static bool WIDGETGROUP_mesh_preselect_edgering_poll(const bContext *C, wmGizmoGroupType *gzgt) -{ - bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); - if ((tref_rt == NULL) || - !STREQ(gzgt->idname, tref_rt->gizmo_group)) - { - WM_gizmo_group_type_unlink_delayed_ptr(gzgt); - return false; - } - return true; -} - static void WIDGETGROUP_mesh_preselect_edgering_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup) { const wmGizmoType *gzt_presel = WM_gizmotype_find("GIZMO_GT_mesh_preselect_edgering_3d", true); @@ -130,7 +107,7 @@ void VIEW3D_GGT_mesh_preselect_edgering(wmGizmoGroupType *gzgt) gzgt->gzmap_params.spaceid = SPACE_VIEW3D; gzgt->gzmap_params.regionid = RGN_TYPE_WINDOW; - gzgt->poll = WIDGETGROUP_mesh_preselect_edgering_poll; + gzgt->poll = ED_gizmo_poll_or_unlink_delayed_from_tool; gzgt->setup = WIDGETGROUP_mesh_preselect_edgering_setup; } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c index 6bb6a022a82..62f66334516 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c @@ -45,6 +45,7 @@ #include "BIF_gl.h" +#include "ED_gizmo_utils.h" #include "ED_gpencil.h" #include "ED_screen.h" #include "ED_transform_snap_object_context.h" @@ -975,18 +976,6 @@ void VIEW3D_GT_ruler_item(wmGizmoType *gzt) /** \name Ruler Gizmo Group * \{ */ -static bool WIDGETGROUP_ruler_poll(const bContext *C, wmGizmoGroupType *gzgt) -{ - bToolRef_Runtime *tref_rt = WM_toolsystem_runtime_from_context((bContext *)C); - if ((tref_rt == NULL) || - !STREQ(gzgt->idname, tref_rt->gizmo_group)) - { - WM_gizmo_group_type_unlink_delayed_ptr(gzgt); - return false; - } - return true; -} - static void WIDGETGROUP_ruler_setup(const bContext *C, wmGizmoGroup *gzgroup) { RulerInfo *ruler_info = MEM_callocN(sizeof(RulerInfo), __func__); @@ -1015,7 +1004,7 @@ void VIEW3D_GGT_ruler(wmGizmoGroupType *gzgt) gzgt->gzmap_params.spaceid = SPACE_VIEW3D; gzgt->gzmap_params.regionid = RGN_TYPE_WINDOW; - gzgt->poll = WIDGETGROUP_ruler_poll; + gzgt->poll = ED_gizmo_poll_or_unlink_delayed_from_tool; gzgt->setup = WIDGETGROUP_ruler_setup; } |