Cleanup: use explicit 'select_and_set_active' API name
Selection should be separated from active state and handled by higher level code (operators/editors) instead of happening automatically.
This commit is contained in:
@@ -815,7 +815,8 @@ static void import_endjob(void *user_data)
|
|||||||
BKE_collection_object_add(data->bmain, lc->collection, ob);
|
BKE_collection_object_add(data->bmain, lc->collection, ob);
|
||||||
|
|
||||||
base = BKE_view_layer_base_find(view_layer, ob);
|
base = BKE_view_layer_base_find(view_layer, ob);
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
/* TODO: is setting active needed? */
|
||||||
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
|
|
||||||
DEG_id_tag_update(&lc->collection->id, DEG_TAG_COPY_ON_WRITE);
|
DEG_id_tag_update(&lc->collection->id, DEG_TAG_COPY_ON_WRITE);
|
||||||
DEG_id_tag_update_ex(data->bmain, &ob->id,
|
DEG_id_tag_update_ex(data->bmain, &ob->id,
|
||||||
|
@@ -73,7 +73,9 @@ struct Object *BKE_view_layer_camera_find(struct ViewLayer *view_layer);
|
|||||||
struct ViewLayer *BKE_view_layer_find_from_collection(const struct Scene *scene, struct LayerCollection *lc);
|
struct ViewLayer *BKE_view_layer_find_from_collection(const struct Scene *scene, struct LayerCollection *lc);
|
||||||
struct Base *BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob);
|
struct Base *BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob);
|
||||||
void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer);
|
void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer);
|
||||||
void BKE_view_layer_base_select(struct ViewLayer *view_layer, struct Base *selbase);
|
|
||||||
|
void BKE_view_layer_base_select(struct Base *selbase);
|
||||||
|
void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, struct Base *selbase);
|
||||||
|
|
||||||
void BKE_view_layer_copy_data(
|
void BKE_view_layer_copy_data(
|
||||||
struct Scene *scene_dst, const struct Scene *scene_src,
|
struct Scene *scene_dst, const struct Scene *scene_src,
|
||||||
|
@@ -340,14 +340,19 @@ void BKE_view_layer_base_deselect_all(ViewLayer *view_layer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BKE_view_layer_base_select(struct ViewLayer *view_layer, Base *selbase)
|
void BKE_view_layer_base_select(Base *selbase)
|
||||||
{
|
{
|
||||||
view_layer->basact = selbase;
|
|
||||||
if ((selbase->flag & BASE_SELECTABLE) != 0) {
|
if ((selbase->flag & BASE_SELECTABLE) != 0) {
|
||||||
selbase->flag |= BASE_SELECTED;
|
selbase->flag |= BASE_SELECTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, Base *selbase)
|
||||||
|
{
|
||||||
|
view_layer->basact = selbase;
|
||||||
|
BKE_view_layer_base_select(selbase);
|
||||||
|
}
|
||||||
|
|
||||||
/**************************** Copy View Layer and Layer Collections ***********************/
|
/**************************** Copy View Layer and Layer Collections ***********************/
|
||||||
|
|
||||||
static void layer_collections_copy_data(
|
static void layer_collections_copy_data(
|
||||||
|
@@ -924,7 +924,7 @@ Object *BKE_object_add(
|
|||||||
BKE_collection_object_add(bmain, layer_collection->collection, ob);
|
BKE_collection_object_add(bmain, layer_collection->collection, ob);
|
||||||
|
|
||||||
base = BKE_view_layer_base_find(view_layer, ob);
|
base = BKE_view_layer_base_find(view_layer, ob);
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
|
|
||||||
return ob;
|
return ob;
|
||||||
}
|
}
|
||||||
@@ -945,7 +945,7 @@ Object *BKE_object_add_from(
|
|||||||
BKE_collection_object_add_from(bmain, scene, ob_src, ob);
|
BKE_collection_object_add_from(bmain, scene, ob_src, ob);
|
||||||
|
|
||||||
base = BKE_view_layer_base_find(view_layer, ob);
|
base = BKE_view_layer_base_find(view_layer, ob);
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
|
|
||||||
return ob;
|
return ob;
|
||||||
}
|
}
|
||||||
@@ -979,7 +979,7 @@ Object *BKE_object_add_for_data(
|
|||||||
BKE_collection_object_add(bmain, layer_collection->collection, ob);
|
BKE_collection_object_add(bmain, layer_collection->collection, ob);
|
||||||
|
|
||||||
base = BKE_view_layer_base_find(view_layer, ob);
|
base = BKE_view_layer_base_find(view_layer, ob);
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
|
|
||||||
return ob;
|
return ob;
|
||||||
}
|
}
|
||||||
|
@@ -154,7 +154,8 @@ Object *bc_add_object(Main *bmain, Scene *scene, ViewLayer *view_layer, int type
|
|||||||
BKE_collection_object_add(bmain, layer_collection->collection, ob);
|
BKE_collection_object_add(bmain, layer_collection->collection, ob);
|
||||||
|
|
||||||
Base *base = BKE_view_layer_base_find(view_layer, ob);
|
Base *base = BKE_view_layer_base_find(view_layer, ob);
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
/* TODO: is setting active needed? */
|
||||||
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
|
|
||||||
return ob;
|
return ob;
|
||||||
}
|
}
|
||||||
|
@@ -2347,7 +2347,8 @@ static int make_override_static_exec(bContext *C, wmOperator *op)
|
|||||||
new_ob->parent = obcollection;
|
new_ob->parent = obcollection;
|
||||||
}
|
}
|
||||||
if (new_ob == (Object *)obact->id.newid) {
|
if (new_ob == (Object *)obact->id.newid) {
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
/* TODO: is setting active needed? */
|
||||||
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Disable auto-override tags for non-active objects, will help with performaces... */
|
/* Disable auto-override tags for non-active objects, will help with performaces... */
|
||||||
|
@@ -117,7 +117,7 @@ static void rna_Object_select_set(Object *ob, bContext *C, ReportList *reports,
|
|||||||
break;
|
break;
|
||||||
case 0: /* SELECT */
|
case 0: /* SELECT */
|
||||||
default:
|
default:
|
||||||
BKE_view_layer_base_select(view_layer, base);
|
BKE_view_layer_base_select_and_set_active(view_layer, base);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user