Blender Git Loki
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)
/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)