code: private void computeBackgrounds(BoxNode root, Color currentbg)
      {
          Color newbg = root.getBackgroundColor();
          if (newbg == null)
              newbg = currentbg;
          root.setEfficientBackground(newbg);
          root.setBackgroundSeparated(!newbg.equals(currentbg));
          
          for (int i = 0; i < root.getChildCount(); i++)
              computeBackgrounds((BoxNode) root.getChildAt(i), newbg);
      }
docs: Computes efficient background color for all the nodes in the tree