diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-05-15 13:49:38 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-05-15 14:02:44 +0300 |
commit | 3f20105622a9871e6b71e8a29b25e24a97202e38 (patch) | |
tree | 932106a3def9b36ce4d5acebd99231168294c1ee /source/blender/editors/space_outliner/outliner_select.c | |
parent | 8021ac986a6437b6013a22d98e54186592f5d285 (diff) |
Fix random crashes in the outliner, especially with bigger scenes.
The outliner can redraw quicker without rebuilding the tree, for example when
just moving the mouse and highlighting different items. The way this worked is
that the outliner would be tagged to avoid rebuilding, however if another
operation that does require rebuilding happens in the meantime we could go out
of sync and crash.
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_select.c')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_select.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index b966b0f3dfa..4bde67d9662 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -995,12 +995,13 @@ int outliner_item_do_activate_from_cursor( } if (changed) { - if (!rebuild_tree) { - /* only needs to redraw, no rebuild */ - soops->storeflag |= SO_TREESTORE_REDRAW; + if (rebuild_tree) { + ED_region_tag_redraw(ar); + } + else { + ED_region_tag_redraw_no_rebuild(ar); } ED_undo_push(C, "Outliner selection change"); - ED_region_tag_redraw(ar); } return OPERATOR_FINISHED; |