diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-11-09 18:11:20 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-11-09 18:23:41 +0300 |
commit | c35f1d05eaa13348d4f33cdb44f6fb62f68e1ba3 (patch) | |
tree | 698066b5eade15949b0453796c4d9fc466df42ac /source/blender/editors/object/object_select.c | |
parent | 09d26cab0bdde16529debd3e0271252012ba69eb (diff) |
Farewell Scene->basact
Diffstat (limited to 'source/blender/editors/object/object_select.c')
-rw-r--r-- | source/blender/editors/object/object_select.c | 54 |
1 files changed, 12 insertions, 42 deletions
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 9da7154ae8d..b87c8500de0 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -89,44 +89,6 @@ /* Note: send a NC_SCENE|ND_OB_SELECT notifier yourself! (or * or a NC_SCENE|ND_OB_VISIBLE in case of visibility toggling */ -void ED_base_object_select(BaseLegacy *base, short mode) -{ - if (base) { - if (mode == BA_SELECT) { - if (!(base->object->restrictflag & OB_RESTRICT_SELECT)) - base->flag_legacy |= SELECT; - } - else if (mode == BA_DESELECT) { - base->flag_legacy &= ~SELECT; - } - BKE_scene_base_flag_sync_from_base(base); - } -} - -/* also to set active NULL */ -void ED_base_object_activate(bContext *C, BaseLegacy *base) -{ - Scene *scene = CTX_data_scene(C); - - /* sets scene->basact */ - BASACT = base; - - if (base) { -#ifdef USE_WORKSPACE_MODE - WorkSpace *workspace = CTX_wm_workspace(C); - - BKE_workspace_object_mode_set(workspace, base->object->mode); -#endif - - /* XXX old signals, remember to handle notifiers now! */ - // select_actionchannel_by_name(base->object->action, "Object", 1); - - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); - } - else - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, NULL); -} - void ED_object_base_select(Base *base, eObjectSelect_Mode mode) { if (mode == BA_INVERT) { @@ -147,16 +109,24 @@ void ED_object_base_select(Base *base, eObjectSelect_Mode mode) /* Never happens. */ break; } + BKE_scene_object_base_flag_sync_from_base(base); } } +/** + * Change active base, it includes the notifier + */ void ED_object_base_activate(bContext *C, Base *base) { - SceneLayer *sl = CTX_data_scene_layer(C); - sl->basact = base; + SceneLayer *scene_layer = CTX_data_scene_layer(C); + scene_layer->basact = base; if (base) { - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, sl); +#ifdef USE_WORKSPACE_MODE + WorkSpace *workspace = CTX_wm_workspace(C); + BKE_workspace_object_mode_set(workspace, base->object->mode); +#endif + WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene_layer); } else { WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, NULL); @@ -659,7 +629,7 @@ static bool select_grouped_object_hooks(bContext *C, Object *ob) if (hmd->object && !(hmd->object->flag & SELECT)) { base = BKE_scene_layer_base_find(sl, hmd->object); if (base && (BASE_SELECTABLE_NEW(base))) { - ED_base_object_select(base, BA_SELECT); + ED_object_base_select(base, BA_SELECT); changed = true; } } |