Bugfix #27026
authorTon Roosendaal <ton@blender.org>
Wed, 20 Apr 2011 16:19:49 +0000 (16:19 +0000)
committerTon Roosendaal <ton@blender.org>
Wed, 20 Apr 2011 16:19:49 +0000 (16:19 +0000)
Outliner objects showed "active" or "selected" in confusing
ways. Now the display is simply binary, and more in line with
how other items in outliner draw:

- text is white = item is active
- color circle behind icon: shows selection state

source/blender/editors/space_outliner/outliner.c

index 8fdd62f7412ac25f79005c6f1aa9bff0033f07b8..fce9c883c84589d7c98319f4f2bc52724acebbc1 100644 (file)
@@ -4667,16 +4667,24 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
                                Object *ob= (Object *)tselem->id;
                                
                                if(ob==OBACT || (ob->flag & SELECT)) {
-                                       char col[4];
+                                       char col[4]= {0, 0, 0, 0};
                                        
-                                       active= 2;
+                                       /* outliner active ob: always white text, circle color now similar to view3d */
+                                       
+                                       active= 2; /* means it draws a color circle */
                                        if(ob==OBACT) {
-                                               UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col);
-                                               /* so black text is drawn when active and not selected */
-                                               if (ob->flag & SELECT) active= 1;
+                                               if(ob->flag & SELECT) {
+                                                       UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col);
+                                                       col[3]= 100;
+                                               }
+                                               
+                                               active= 1; /* means it draws white text */
                                        }
-                                       else UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
-                                       col[3]= 100;
+                                       else if(ob->flag & SELECT) {
+                                               UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
+                                               col[3]= 100;
+                                       }
+                                       
                                        glColor4ubv((GLubyte *)col);
                                }