if (layout == null || !layout.flushCache (child)) { state |= LAYOUT_CHANGED;
if (composite.layout == null || !composite.layout.flushCache (child)) { composite.state |= LAYOUT_CHANGED;
public void changed (Control[] changed) {	checkWidget ();	if (changed == null) error (SWT.ERROR_INVALID_ARGUMENT);	for (int i=0; i<changed.length; i++) {		Control control = changed [i];		if (control == null) error (SWT.ERROR_INVALID_ARGUMENT);		if (control.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);		boolean ancestor = false;		Composite composite = control.parent;		while (composite != null) {			ancestor = composite == this;			if (ancestor) break;			composite = composite.parent;		}		if (!ancestor) error (SWT.ERROR_INVALID_PARENT);	}	for (int i=0; i<changed.length; i++) {		Control child = changed [i];		Composite composite = child.parent;		while (child != this) {			if (layout == null || !layout.flushCache (child)) {				state |= LAYOUT_CHANGED;			}			child = composite;			composite = child.parent;		}	}}