diff options
Diffstat (limited to 'source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c')
-rw-r--r-- | source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c index d805d730651..18bee2e4457 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatorgroup.c @@ -159,8 +159,8 @@ wmManipulator *wm_manipulatorgroup_find_intersected_mainpulator( unsigned char *part) { for (wmManipulator *manipulator = mgroup->manipulators.first; manipulator; manipulator = manipulator->next) { - if (manipulator->type.intersect && (manipulator->flag & WM_MANIPULATOR_HIDDEN) == 0) { - if ((*part = manipulator->type.intersect(C, manipulator, event))) { + if (manipulator->type->intersect && (manipulator->flag & WM_MANIPULATOR_HIDDEN) == 0) { + if ((*part = manipulator->type->intersect(C, manipulator, event))) { return manipulator; } } @@ -176,8 +176,8 @@ void wm_manipulatorgroup_intersectable_manipulators_to_list(const wmManipulatorG { for (wmManipulator *manipulator = mgroup->manipulators.first; manipulator; manipulator = manipulator->next) { if ((manipulator->flag & WM_MANIPULATOR_HIDDEN) == 0) { - if (((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) && manipulator->type.draw_select) || - ((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) == 0 && manipulator->type.intersect)) + if (((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) && manipulator->type->draw_select) || + ((mgroup->type->flag & WM_MANIPULATORGROUPTYPE_IS_3D) == 0 && manipulator->type->intersect)) { BLI_addhead(listbase, BLI_genericNodeN(manipulator)); } @@ -297,8 +297,8 @@ typedef struct ManipulatorTweakData { static void manipulator_tweak_finish(bContext *C, wmOperator *op, const bool cancel) { ManipulatorTweakData *mtweak = op->customdata; - if (mtweak->active->type.exit) { - mtweak->active->type.exit(C, mtweak->active, cancel); + if (mtweak->active->type->exit) { + mtweak->active->type->exit(C, mtweak->active, cancel); } wm_manipulatormap_set_active_manipulator(mtweak->mmap, C, NULL, NULL); MEM_freeN(mtweak); @@ -338,8 +338,11 @@ static int manipulator_tweak_modal(bContext *C, wmOperator *op, const wmEvent *e } /* handle manipulator */ - if (manipulator->type.handler) { - manipulator->type.handler(C, manipulator, event, mtweak->flag); + if (manipulator->custom_handler) { + manipulator->custom_handler(C, manipulator, event, mtweak->flag); + } + else if (manipulator->type->handler) { + manipulator->type->handler(C, manipulator, event, mtweak->flag); } /* Ugly hack to send manipulator events */ |