Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/animation/anim_channels_edit.c
| Show First 20 Lines • Show All 2,678 Lines • ▼ Show 20 Lines | case ANIMTYPE_SCENE: | ||||
| notifierFlags |= (ND_ANIMCHAN | NA_SELECTED); | notifierFlags |= (ND_ANIMCHAN | NA_SELECTED); | ||||
| break; | break; | ||||
| } | } | ||||
| case ANIMTYPE_OBJECT: | case ANIMTYPE_OBJECT: | ||||
| { | { | ||||
| bDopeSheet *ads = (bDopeSheet *)ac->data; | bDopeSheet *ads = (bDopeSheet *)ac->data; | ||||
| Scene *sce = (Scene *)ads->source; | Scene *sce = (Scene *)ads->source; | ||||
| SceneLayer *scene_layer = ac->scene_layer; | ViewLayer *view_layer = ac->view_layer; | ||||
| Base *base = (Base *)ale->data; | Base *base = (Base *)ale->data; | ||||
| Object *ob = base->object; | Object *ob = base->object; | ||||
| AnimData *adt = ob->adt; | AnimData *adt = ob->adt; | ||||
| /* set selection status */ | /* set selection status */ | ||||
| if (base->flag & BASE_SELECTABLED) { | if (base->flag & BASE_SELECTABLED) { | ||||
| if (selectmode == SELECT_INVERT) { | if (selectmode == SELECT_INVERT) { | ||||
| /* swap select */ | /* swap select */ | ||||
| ED_object_base_select(base, BA_INVERT); | ED_object_base_select(base, BA_INVERT); | ||||
| BKE_scene_object_base_flag_sync_from_base(base); | BKE_scene_object_base_flag_sync_from_base(base); | ||||
| if (adt) adt->flag ^= ADT_UI_SELECTED; | if (adt) adt->flag ^= ADT_UI_SELECTED; | ||||
| } | } | ||||
| else { | else { | ||||
| Base *b; | Base *b; | ||||
| /* deselect all */ | /* deselect all */ | ||||
| /* TODO: should this deselect all other types of channels too? */ | /* TODO: should this deselect all other types of channels too? */ | ||||
| for (b = scene_layer->object_bases.first; b; b = b->next) { | for (b = view_layer->object_bases.first; b; b = b->next) { | ||||
| ED_object_base_select(b, BA_DESELECT); | ED_object_base_select(b, BA_DESELECT); | ||||
| BKE_scene_object_base_flag_sync_from_base(b); | BKE_scene_object_base_flag_sync_from_base(b); | ||||
| if (b->object->adt) b->object->adt->flag &= ~(ADT_UI_SELECTED | ADT_UI_ACTIVE); | if (b->object->adt) b->object->adt->flag &= ~(ADT_UI_SELECTED | ADT_UI_ACTIVE); | ||||
| } | } | ||||
| /* select object now */ | /* select object now */ | ||||
| ED_object_base_select(base, BA_SELECT); | ED_object_base_select(base, BA_SELECT); | ||||
| BKE_scene_object_base_flag_sync_from_base(base); | BKE_scene_object_base_flag_sync_from_base(base); | ||||
| ▲ Show 20 Lines • Show All 532 Lines • Show Last 20 Lines | |||||