[Bf-blender-cvs] [7d25139eaf4] master: Fix T82960: Inaccurate selection on collapsed outliner rows

Nathan Craddock noreply at git.blender.org
Fri Dec 18 04:13:53 CET 2020


Commit: 7d25139eaf4ab11e69d6adb2f436489eca016b64
Author: Nathan Craddock
Date:   Thu Dec 17 16:28:24 2020 -0700
Branches: master
https://developer.blender.org/rB7d25139eaf4ab11e69d6adb2f436489eca016b64

Fix T82960: Inaccurate selection on collapsed outliner rows

After rB15083d9e1 the outliner tree is not rebuilt after expanding or
collapsing rows. Because the tree is no longer rebuilt the positions
and flags of the elements are not cleared when collapsing a row. This
caused hover highlights and selections on the collapsed child icons to
be incorrect in many cases.

For example, only the direct children of a collapsed element are drawn
inline. If any grandchild elements had been previously icon row flagged
they would continue to be evaluated as icon row elements despite being
hidden. In this case the x coordinates of the child and grandchild would
overlap causing selection to appear erratic.

Now the flags for inline row icons are explicitly cleared, which was
previously only done because the tree was rebuilt on collapsing rows.

===================================================================

M	source/blender/editors/space_outliner/outliner_draw.c

===================================================================

diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index 657ada874ea..d2381cf30db 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -2845,6 +2845,7 @@ static void outliner_draw_iconrow(bContext *C,
 
   LISTBASE_FOREACH (TreeElement *, te, lb) {
     TreeStoreElem *tselem = TREESTORE(te);
+    te->flag &= ~(TE_ICONROW | TE_ICONROW_MERGED);
 
     /* object hierarchy always, further constrained on level */
     if (level < 1 || (tselem->type == 0 && te->idcode == ID_OB)) {



More information about the Bf-blender-cvs mailing list