if(body_box.isChildrenExceedBounds()) { setOpaque(false); }
    protected void startLayout(Graphics g) {        this.removeAll();        if ( g == null ) {            return;        }        if ( doc == null ) {            return;        }        Element html = (Element)doc.getDocumentElement();        //Element body = x.child( html, "body" );        //body = html;        // set up CSS        newContext( g );        getContext().setMaxWidth( 0 );        //long start_time = new java.util.Date().getTime();        //u.p("layout = " + layout);        body_box = layout.layout( getContext(), html );        getRenderingContext().root_box = body_box;        //u.p("after layout: " + body_box);        //long end_time = new java.util.Date().getTime();        if ( enclosingScrollPane != null ) {            if ( this.body_box != null ) {                this.enclosingScrollPane.getViewport().setBackground( body_box.background_color );            }        }        intrinsic_size = new Dimension( getContext().getMaxWidth(), layout.contents_height );        if(enclosingScrollPane != null) {            //u.p("enclosing scroll pane = " + this.enclosingScrollPane);            int view_height = this.enclosingScrollPane.getViewport().getHeight();                    // resize the outter most box incase it is too small for the viewport            if(intrinsic_size.getHeight() < view_height) {                if(body_box != null) {                    body_box.height = view_height;                }            }        }                        if ( !intrinsic_size.equals( this.getSize() ) ) {            this.setPreferredSize( intrinsic_size );            this.revalidate();        }        this.fireDocumentLoaded();    }