if (layout != null) layout.layout (this, false);
if (layout != null) { markLayout (false, false); updateLayout (false); }
int kEventWindowBoundsChanged (int nextHandler, int theEvent, int userData) {	int result = super.kEventWindowBoundsChanged (nextHandler, theEvent, userData);	if (result == OS.noErr) return result;	int [] attributes = new int [1];	OS.GetEventParameter (theEvent, OS.kEventParamAttributes, OS.typeUInt32, null, attributes.length * 4, null, attributes);	if ((attributes [0] & OS.kWindowBoundsChangeOriginChanged) != 0) {		moved = true;		sendEvent (SWT.Move);		if (isDisposed ()) return OS.noErr;	}	if ((attributes [0] & OS.kWindowBoundsChangeSizeChanged) != 0) {		resized = true;		resizeBounds ();		sendEvent (SWT.Resize);		if (isDisposed ()) return OS.noErr;		if (layout != null) layout.layout (this, false);		if (region != null && !region.isDisposed()) {			OS.GetEventParameter (theEvent, OS.kEventParamCurrentBounds, OS.typeQDRectangle, null, Rect.sizeof, null, rgnRect);			OS.SetRect (rgnRect, (short) 0, (short) 0, (short) (rgnRect.right - rgnRect.left), (short) (rgnRect.bottom - rgnRect.top));			OS.ReshapeCustomWindow (shellHandle);		}	}	return result;}