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:
Diffstat (limited to 'source/blender/editors/object')
-rw-r--r--source/blender/editors/object/object_add.c8
-rw-r--r--source/blender/editors/object/object_select.c54
2 files changed, 16 insertions, 46 deletions
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index f6a23a03aa4..2f9dbb657c4 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -1204,7 +1204,7 @@ static void object_delete_check_glsl_update(Object *ob)
/* remove base from a specific scene */
/* note: now unlinks constraints as well */
-void ED_base_object_free_and_unlink(Main *bmain, Scene *scene, Object *ob)
+void ED_object_base_free_and_unlink(Main *bmain, Scene *scene, Object *ob)
{
if (BKE_library_ID_is_indirectly_used(bmain, ob) &&
ID_REAL_USERS(ob) <= 1 && ID_EXTRA_USERS(ob) == 0)
@@ -1272,7 +1272,7 @@ static int object_delete_exec(bContext *C, wmOperator *op)
}
/* remove from current scene only */
- ED_base_object_free_and_unlink(bmain, scene, ob);
+ ED_object_base_free_and_unlink(bmain, scene, ob);
changed = true;
if (use_global) {
@@ -1285,7 +1285,7 @@ static int object_delete_exec(bContext *C, wmOperator *op)
ob->id.name + 2, scene_iter->id.name + 2);
break;
}
- ED_base_object_free_and_unlink(bmain, scene_iter, ob);
+ ED_object_base_free_and_unlink(bmain, scene_iter, ob);
}
}
}
@@ -2013,7 +2013,7 @@ static int convert_exec(bContext *C, wmOperator *op)
if (BKE_mball_is_basis(ob_mball) ||
((ob_basis = BKE_mball_basis_find(scene, ob_mball)) && (ob_basis->flag & OB_DONE)))
{
- ED_base_object_free_and_unlink(bmain, scene, ob_mball);
+ ED_object_base_free_and_unlink(bmain, scene, ob_mball);
}
}
}
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;
}
}