if (layout != null) layout.layout (this, false);
if (layout != null) { markLayout (false, false); updateLayout (false); }
boolean setBounds (int x, int y, int width, int height, boolean move, boolean resize) {	if (resize) {		int [] argList = {OS.XmNminWidth, 0, OS.XmNminHeight, 0};		OS.XtGetValues (shellHandle, argList, argList.length / 2);		/*		* Feature in Motif.  Motif will not allow a window		* to have a zero width or zero height.  The fix is		* to ensure these values are never zero.		*/		width = Math.max (1, Math.max (argList [1], width - trimWidth ()));		height = Math.max (1, Math.max (argList [3], height - trimHeight ()));	}	if (move && resize) {		OS.XtConfigureWidget (shellHandle, x, y, width, height, 0);	} else {		if (move) OS.XtMoveWidget (shellHandle, x, y);		if (resize) OS.XtResizeWidget (shellHandle, width, height, 0);	}	if (redrawWindow != 0) {		int xDisplay = OS.XtDisplay (handle);		OS.XResizeWindow (xDisplay, redrawWindow, width, height);	}	if (move && (oldX != x || oldY != y)) {		moved = true;		oldX = x + trimLeft ();		oldY = y + trimTop ();		sendEvent (SWT.Move);		if (isDisposed ()) return false;	}	if (resize && (width != oldWidth || height != oldHeight)) {		resized = true;		oldWidth = width;		oldHeight = height;		sendEvent (SWT.Resize);		if (isDisposed ()) return false;		if (layout != null) layout.layout (this, false);	}	return move || resize;}