Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-09-18 09:10:07 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-09-18 09:15:06 +0300
commitd421adb83e8d39bd9d74ea3d526326b70e93c341 (patch)
tree4c5e16b5e2fcd8c587204aa85dde175a6951392a /source/blender/editors/space_view3d/view3d_gizmo_preselect.c
parent0a3b66cfb573a91ba3b19f30ead4a026bdfa6873 (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/view3d_gizmo_preselect.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_gizmo_preselect.c29
1 files changed, 3 insertions, 26 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;
}