diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-07-05 09:25:54 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-07-05 09:28:01 +0300 |
commit | 31d762c3a80da99afa4e3ba6dd308746011de6cb (patch) | |
tree | 030a18be69a4c0ab84a88637a5601687780b6e85 /source/blender/editors/object/object_select.c | |
parent | 66684bdff30fdf3fffa02c71c0118b7d714e9b0e (diff) |
Fix T66356: runtime assert disabling a collection
Diffstat (limited to 'source/blender/editors/object/object_select.c')
-rw-r--r-- | source/blender/editors/object/object_select.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index fcba69f7e5d..da06707ebac 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -119,18 +119,27 @@ void ED_object_base_select(Base *base, eObjectSelect_Mode mode) } /** + * Call when the active base has changed. + */ +void ED_object_base_active_refresh(Main *bmain, Scene *scene, ViewLayer *view_layer) +{ + WM_main_add_notifier(NC_SCENE | ND_OB_ACTIVE, scene); + DEG_id_tag_update(&scene->id, ID_RECALC_SELECT); + struct wmMsgBus *mbus = ((wmWindowManager *)bmain->wm.first)->message_bus; + if (mbus != NULL) { + WM_msg_publish_rna_prop(mbus, &scene->id, view_layer, LayerObjects, active); + } +} + +/** * Change active base, it includes the notifier */ void ED_object_base_activate(bContext *C, Base *base) { - struct wmMsgBus *mbus = CTX_wm_message_bus(C); Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); view_layer->basact = base; - - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); - WM_msg_publish_rna_prop(mbus, &scene->id, view_layer, LayerObjects, active); - DEG_id_tag_update(&scene->id, ID_RECALC_SELECT); + ED_object_base_active_refresh(CTX_data_main(C), scene, view_layer); } bool ED_object_base_deselect_all_ex(ViewLayer *view_layer, |