Blender Git Commit Log

Git Commits -> Revision 20ae943

Revision 20ae943 by Nathan Craddock (soc-2019-outliner)
June 25, 2019, 02:16 (GMT)
Outliner: Redo synced selection dirty outliner implementation

The previous implementation assumed each selection type was identical
and synced each outliner with the 3D view. This had flaws because
hidden objects can be selected in the outliner, and it would be impossible
to know whether or not to keep them selected when syncing. To work around
that and other cases, this implementation does two things:

1. After any 3D view selection, sync selection flags with an outliner.
After syncing, a clean outliner is stored. Then the other outliners
are marked as dirty, to be synced from the clean outliner.

2. After an outliner select, that outliner is set as clean and the
other outliners are marked as dirty to be synced from.

More work is needed to support all outliner selection operations,
as well as properly supporting extending selections from the 3D
view. However, the underlying code for selection syncing should now
support the edge cases that the other implementation failed to
support.

Commit Details:

Full Hash: 20ae943bf4133d2188cb9443636b5fe2a1ec9ae5
Parent Commit: 801e973
Lines Changed: +132, -105

6 Modified Paths:

/source/blender/blenkernel/BKE_main.h (+11, -1) (Diff)
/source/blender/editors/object/object_select.c (+1, -1) (Diff)
/source/blender/editors/space_outliner/outliner_draw.c (+105, -4) (Diff)
/source/blender/editors/space_outliner/outliner_intern.h (+1, -1) (Diff)
/source/blender/editors/space_outliner/outliner_select.c (+14, -80) (Diff)
/source/blender/windowmanager/intern/wm_event_system.c (+0, -18) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021