diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-06-15 13:48:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-06-15 13:56:22 +0300 |
commit | 830df9b33d3e2afdf3bb23b469378899c34fda78 (patch) | |
tree | 4f2fad8cdd48937e28d2c45115476c9045e4525b /source/blender/editors/space_node/space_node.c | |
parent | 1a7099f3ecf52fa8a54c2ba3f652d5827ca9103c (diff) |
Updates to manipulator API
While this is work-in-progress from custom-manipulators branch
its stable so adding into 2.8 so we don't get too much out of sync.
- ManipulatorGroupType's are moved out of the manipulator-map and are now
global (like operators, panels etc) and added into spaces as needed.
Without this all operators that might ever use a manipulator in the 3D
view would be polling the viewport.
- Add optional get/set callbacks for non-RNA properties
Needed so re-usable manipulators can control values that
don't correspond to a single properly or need conversion.
- Fix divide by zero bug in arrow manipulator (when moving zero pixels).
Diffstat (limited to 'source/blender/editors/space_node/space_node.c')
-rw-r--r-- | source/blender/editors/space_node/space_node.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 665808c500f..2f1e6d38d3d 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -646,9 +646,9 @@ static void node_main_region_init(wmWindowManager *wm, ARegion *ar) UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy); /* manipulators stay in the background for now - quick patchjob to make sure nodes themselves work */ - if (!ar->manipulator_map) { - ar->manipulator_map = WM_manipulatormap_new_from_type(&(const struct wmManipulatorMapType_Params) { - "Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW}); + if (ar->manipulator_map == NULL) { + ar->manipulator_map = WM_manipulatormap_new_from_type( + &(const struct wmManipulatorMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); } WM_manipulatormap_add_handlers(ar, ar->manipulator_map); @@ -859,9 +859,9 @@ static int node_context(const bContext *C, const char *member, bContextDataResul static void node_widgets(void) { /* create the widgetmap for the area here */ - wmManipulatorMapType *wmaptype = WM_manipulatormaptype_ensure(&(const struct wmManipulatorMapType_Params) { - "Node_Canvas", SPACE_NODE, RGN_TYPE_WINDOW}); - WM_manipulatorgrouptype_append(wmaptype, NODE_WGT_backdrop_transform); + wmManipulatorMapType *mmap_type = WM_manipulatormaptype_ensure( + &(const struct wmManipulatorMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); + WM_manipulatorgrouptype_append_and_link(mmap_type, NODE_WGT_backdrop_transform); } static void node_id_remap(ScrArea *UNUSED(sa), SpaceLink *slink, ID *old_id, ID *new_id) |