if (!fVisible || fDrawCount > 0) {  return 0; }
int processPaint (Object callData) {	if (!hooks (SWT.Paint)) return 0;		// AW	// calculate damage rect for this Control	MacControlEvent me= (MacControlEvent) callData;	int updateRegion= me.getDamageRegionHandle();	MacRect bounds= new MacRect();	OS.GetControlBounds(me.getControlHandle(), bounds.getData());	int x= bounds.getX();	int y= bounds.getY();	int contentRgn= OS.NewRgn();	OS.RectRgn(contentRgn, bounds.getData());	if (updateRegion != 0)		OS.SectRgn(contentRgn, updateRegion, contentRgn);	OS.GetRegionBounds(contentRgn, bounds.getData());	Rectangle r= bounds.toRectangle();	OS.DisposeRgn(contentRgn);			r.x-= x;	r.y-= y;	// AW		Event event = new Event ();    /* AW	event.count = xEvent.count;	event.time = OS.XtLastTimestampProcessed (xDisplay);	event.x = xEvent.x;  event.y = xEvent.y;	event.width = xEvent.width;  event.height = xEvent.height;    */	event.x = r.x;  event.y = r.y;	event.width = r.width;  event.height = r.height;	GC gc = event.gc = new GC (this);    /* AW	XRectangle rect = new XRectangle ();	rect.x = (short) xEvent.x;  rect.y = (short) xEvent.y;	rect.width = (short) xEvent.width;  rect.height = (short) xEvent.height;	OS.XSetClipRectangles (xDisplay, gc.handle, 0, 0, rect, 1, OS.Unsorted);    */	gc.carbon_focus();		// erase background	if ((state & CANVAS) != 0) {		if ((style & SWT.NO_BACKGROUND) == 0) {			gc.fillRectangle(r);		}	}		sendEvent (SWT.Paint, event);		if (!gc.isDisposed ()) {		gc.carbon_unfocus ();		gc.dispose ();	}	event.gc = null;	return 0;}