Fix T61210: Crash/inconsistency when clicking on obdata in outliner
authorDalai Felinto <dfelinto@gmail.com>
Fri, 15 Feb 2019 17:48:11 +0000 (15:48 -0200)
committerDalai Felinto <dfelinto@gmail.com>
Fri, 15 Feb 2019 17:52:46 +0000 (15:52 -0200)
commit2b7752fb00737d29200d6c0aeb6a782b1a969c65
tree6f6410f2aea5438e122cdeeb9414c33b269486cc
parentdb3bfd0633ae5d3a5458fed7cca7849b86525002
Fix T61210: Crash/inconsistency when clicking on obdata in outliner

The problem
===========
For armature, if the active object was in pose mode and the newly
selected armature data (not the pose, but the edit armature) we would
get a crash.

For mesh objects, the issue would happen with the active object in object mode.
Then the new selected object would switch to edit mode, however the overall
mode would still be object mode, leading to unsynced mode across the objects.

The solution
============
Using shift to extend selection makes current selected (compatible)
objects to go to edit mode as well. Otherwise only the newly selected
object will switch to edit mode.

This also works if you are in edit mode for a curve, and click in a mesh icon.

This also changes the rules for multi-object editing (or rather, how we
put objects in and out of it). Now shirt is also taking into
consideration there. So if you simply click in another mesh object's
data, it will have only the newly selected object in edit mode.

To reproduce the old behaviour you need to use shift to include the
newly selected object in the multi-edit party.

Reviewers: campbellbarton

Subscribers: brecht

Differential Revision: https://developer.blender.org/D4344
source/blender/editors/space_outliner/outliner_select.c