diff options
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_select.c')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_select.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index 688695e3ded..51db965b791 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -801,14 +801,17 @@ static eOLDrawState tree_element_active_keymap_item( /* ---------------------------------------------- */ /* generic call for ID data check or make/check active in UI */ -eOLDrawState tree_element_active( - bContext *C, Scene *scene, SpaceOops *soops, - TreeElement *te, const eOLSetState set) +eOLDrawState tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, + const eOLSetState set, const bool handle_all_types) { - switch (te->idcode) { - /* Note: no ID_OB: objects are handled specially to allow multiple + /* Note: ID_OB only if handle_all_type is true, else objects are handled specially to allow multiple * selection. See do_outliner_item_activate. */ + case ID_OB: + if (handle_all_types) { + return tree_element_set_active_object(C, scene, soops, te, set, false); + } + break; case ID_MA: return tree_element_active_material(C, scene, soops, te, set); case ID_WO: @@ -952,7 +955,7 @@ static bool do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, Sp WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL); } else { // rest of types - tree_element_active(C, scene, soops, te, OL_SETSEL_NORMAL); + tree_element_active(C, scene, soops, te, OL_SETSEL_NORMAL, false); } } |