[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33815] trunk/blender/source/blender/ editors/space_outliner/outliner.c: Bugfix #25313

Ton Roosendaal ton at blender.org
Mon Dec 20 16:39:00 CET 2010


Revision: 33815
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33815
Author:   ton
Date:     2010-12-20 16:39:00 +0100 (Mon, 20 Dec 2010)

Log Message:
-----------
Bugfix #25313

Outliner "show active" now also works for elements hidden in
closed items. (Coordinates were not set)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_outliner/outliner.c

Modified: trunk/blender/source/blender/editors/space_outliner/outliner.c
===================================================================
--- trunk/blender/source/blender/editors/space_outliner/outliner.c	2010-12-20 13:57:52 UTC (rev 33814)
+++ trunk/blender/source/blender/editors/space_outliner/outliner.c	2010-12-20 15:39:00 UTC (rev 33815)
@@ -4559,6 +4559,21 @@
 	
 }
 
+/* closed tree element */
+static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty)
+{
+	TreeElement *ten;
+	
+	/* store coord and continue, we need coordinates for elements outside view too */
+	te->xs= (float)startx;
+	te->ys= (float)(*starty);
+	
+	for(ten= te->subtree.first; ten; ten= ten->next) {
+		outliner_set_coord_tree_element(soops, ten, startx+OL_X, starty);
+	}	
+}
+
+
 static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty)
 {
 	TreeElement *ten;
@@ -4713,13 +4728,18 @@
 	te->ys= (float)*starty;
 	te->xend= startx+offsx;
 		
-	*starty-= OL_H;
-
 	if((tselem->flag & TSE_CLOSED)==0) {
-		for(ten= te->subtree.first; ten; ten= ten->next) {
+		*starty-= OL_H;
+		
+		for(ten= te->subtree.first; ten; ten= ten->next)
 			outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+OL_X, starty);
-		}
 	}	
+	else {
+		for(ten= te->subtree.first; ten; ten= ten->next)
+			outliner_set_coord_tree_element(soops, te, startx, starty);
+
+		*starty-= OL_H;
+	}
 }
 
 static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty)





More information about the Bf-blender-cvs mailing list