diff options
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_sync.c')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_sync.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/space_outliner/outliner_sync.c b/source/blender/editors/space_outliner/outliner_sync.c index 3055d15725b..0f5c74a9168 100644 --- a/source/blender/editors/space_outliner/outliner_sync.c +++ b/source/blender/editors/space_outliner/outliner_sync.c @@ -39,7 +39,6 @@ #include "BKE_layer.h" #include "BKE_main.h" #include "BKE_object.h" -#include "BKE_sequencer.h" #include "DEG_depsgraph.h" @@ -47,6 +46,8 @@ #include "ED_object.h" #include "ED_outliner.h" +#include "SEQ_sequencer.h" + #include "WM_api.h" #include "WM_types.h" @@ -252,11 +253,13 @@ static void outliner_select_sync_to_edit_bone(ViewLayer *view_layer, if (EBONE_SELECTABLE(arm, ebone)) { 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); } else if (!is_edit_bone_selected(selected_ebones, ebone)) { + /* Don't 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); } } |