int left_root = xEvent.x_root - mouseXOffset;
int left_root = Math.max(0, xEvent.x_root - mouseXOffset);
int processMouseMove (int callData) {	XMotionEvent xEvent = new XMotionEvent ();	OS.memmove (xEvent, callData, XMotionEvent.sizeof);	if (dragging) {		int [] argList = {OS.XmNheight, 0};		OS.XtGetValues (handle, argList, argList.length / 2);				int left_root = xEvent.x_root - mouseXOffset;		if (xEvent.y < 0) {			parent.moveUp(this, left_root);							return 0;		} 		if (xEvent.y > argList[1]){			parent.moveDown(this, left_root);			return 0;		}				int delta = Math.abs(xEvent.x - mouseXOffset);		if (xEvent.x < mouseXOffset) {			parent.moveLeft(this, delta);			return 0;		}		if (xEvent.x > mouseXOffset) {			parent.moveRight(this, delta);			return 0;		}		return 0;	}	if (getGrabberArea().contains(xEvent.x, xEvent.y)) {		parent.setCursor(parent.hoverCursor);	} else {		parent.setCursor(null);	}	return 0;}