Commit: 1794f829769d02e4a3a48e47c4f0a0e37b37e020 Author: Julian Eisel Date: Thu Nov 30 16:46:47 2017 +0100 Branches: temp-workspace_active_object https://developer.blender.org/rB1794f829769d02e4a3a48e47c4f0a0e37b37e020
Initial code for setting the active object via workspace =================================================================== M source/blender/blenkernel/BKE_workspace.h M source/blender/blenkernel/intern/workspace.c M source/blender/editors/object/object_hook.c M source/blender/editors/object/object_select.c =================================================================== diff --git a/source/blender/blenkernel/BKE_workspace.h b/source/blender/blenkernel/BKE_workspace.h index 2a35f0d2cae..9ee31947842 100644 --- a/source/blender/blenkernel/BKE_workspace.h +++ b/source/blender/blenkernel/BKE_workspace.h @@ -103,6 +103,7 @@ enum eObjectMode BKE_workspace_object_mode_get(const struct WorkSpace *workspace void BKE_workspace_object_mode_set(struct WorkSpace *workspace, const enum eObjectMode mode) SETTER_ATTRS; #endif struct Base *BKE_workspace_active_base_get(const struct WorkSpace *workspace) GETTER_ATTRS; +void BKE_workspace_active_base_set(struct WorkSpace *workspace, struct Base *base) SETTER_ATTRS; struct Object *BKE_workspace_active_object_get(const struct WorkSpace *workspace); struct ListBase *BKE_workspace_transform_orientations_get(struct WorkSpace *workspace) GETTER_ATTRS; struct ViewLayer *BKE_workspace_view_layer_get(const struct WorkSpace *workspace) GETTER_ATTRS; diff --git a/source/blender/blenkernel/intern/workspace.c b/source/blender/blenkernel/intern/workspace.c index 6a95d2a6b4d..f3db41f0669 100644 --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@ -404,6 +404,10 @@ Base *BKE_workspace_active_base_get(const WorkSpace *workspace) { return workspace->view_layer->basact; } +void BKE_workspace_active_base_set(WorkSpace *workspace, Base *base) +{ + workspace->view_layer->basact = base; +} Object *BKE_workspace_active_object_get(const WorkSpace *workspace) { diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 93546b1bd5d..b86f773a4ff 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -56,6 +56,7 @@ #include "BKE_scene.h" #include "BKE_deform.h" #include "BKE_editmesh.h" +#include "BKE_workspace.h" #include "DEG_depsgraph.h" #include "DEG_depsgraph_build.h" @@ -448,7 +449,9 @@ static int hook_op_edit_poll(bContext *C) return 0; } -static Object *add_hook_object_new(Main *bmain, Scene *scene, ViewLayer *view_layer, Object *obedit) +static Object *add_hook_object_new( + Main *bmain, Scene *scene, ViewLayer *view_layer, + WorkSpace *workspace, Object *obedit) { Base *base, *basedit; Object *ob; @@ -462,7 +465,7 @@ static Object *add_hook_object_new(Main *bmain, Scene *scene, ViewLayer *view_la /* icky, BKE_object_add sets new base as active. * so set it back to the original edit object */ - view_layer->basact = basedit; + BKE_workspace_active_base_set(workspace, basedit); return ob; } diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 47e63cb43e5..006620d3be8 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -118,14 +118,13 @@ void ED_object_base_select(Base *base, eObjectSelect_Mode mode) */ void ED_object_base_activate(bContext *C, Base *base) { - ViewLayer *view_layer = CTX_data_view_layer(C); - view_layer->basact = base; + WorkSpace *workspace = CTX_wm_workspace(C); + + BKE_workspace_active_base_set(workspace, base); if (base) { -#ifdef USE_WORKSPACE_MODE - WorkSpace *workspace = CTX_wm_workspace(C); - BKE_workspace_object_mode_set(workspace, base->object->mode); -#endif + /* TODO */ + ViewLayer *view_layer = CTX_data_view_layer(C); WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, view_layer); } else { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs