Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_outliner/outliner_sync.c
| Show First 20 Lines • Show All 247 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| bArmature *arm = (bArmature *)tselem->id; | bArmature *arm = (bArmature *)tselem->id; | ||||
| EditBone *ebone = (EditBone *)te->directdata; | EditBone *ebone = (EditBone *)te->directdata; | ||||
| short bone_flag = ebone->flag; | short bone_flag = ebone->flag; | ||||
| if (EBONE_SELECTABLE(arm, ebone)) { | if (EBONE_SELECTABLE(arm, ebone)) { | ||||
| if (tselem->flag & TSE_SELECTED) { | if (tselem->flag & TSE_SELECTED) { | ||||
| ebone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); | ED_armature_ebone_select_set(ebone, true); | ||||
| add_selected_item(selected_ebones, ebone); | add_selected_item(selected_ebones, ebone); | ||||
| } | } | ||||
| else if (!is_edit_bone_selected(selected_ebones, ebone)) { | else if (!is_edit_bone_selected(selected_ebones, ebone)) { | ||||
| /* Dont flush to parent bone tip, synced selection is iterating the whole tree so deselecting | |||||
| * potential children with 'ED_armature_ebone_select_set(ebone, false)' would leave own tip | |||||
| * deselected. */ | |||||
| ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); | ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); | ||||
natecraddock: If the parent bone is selected here, we shouldn't deselect it's tip. | |||||
| } | } | ||||
| } | } | ||||
| /* Tag if selection changed */ | /* Tag if selection changed */ | ||||
| if (bone_flag != ebone->flag) { | if (bone_flag != ebone->flag) { | ||||
| Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer); | Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer); | ||||
| DEG_id_tag_update(&arm->id, ID_RECALC_SELECT); | DEG_id_tag_update(&arm->id, ID_RECALC_SELECT); | ||||
| WM_main_add_notifier(NC_OBJECT | ND_BONE_SELECT, obedit); | WM_main_add_notifier(NC_OBJECT | ND_BONE_SELECT, obedit); | ||||
| ▲ Show 20 Lines • Show All 309 Lines • Show Last 20 Lines | |||||
If the parent bone is selected here, we shouldn't deselect it's tip.