int whichWindow= 0;
	private int handleMouseCallback(int nextHandler, int eRefHandle) {				int eventKind= OS.GetEventKind(eRefHandle);				if (eventKind == OS.kEventMouseDown) {			fTrackedControl= 0;		}				MacEvent me= new MacEvent();		OS.ConvertEventRefToEventRecord(eRefHandle, me.getData());				int whichWindow= 0;		short part= 0;		MacPoint where= me.getWhere();				if (fTrackedControl != 0) {			whichWindow= OS.GetControlOwner(fTrackedControl);		} else {			int[] w= new int[1];			part= OS.FindWindow(where.getData(), w);			whichWindow= w[0];			//part= getWindowDefPart(eRefHandle);			//whichWindow= getDirectObject(eRefHandle);		}						/*		if (eventKind == OS.kEventMouseDown) {			Widget w= findWidget(whichWindow);			System.out.println("click: " + whichWindow + " " + w);		}		*/				int oldPort= OS.GetPort();		OS.SetPortWindowPort(whichWindow);		OS.GlobalToLocal(where.getData());		OS.SetPort(oldPort);				switch (eventKind) {				case OS.kEventMouseDown:								hideToolTip ();					//if (whichWindow != OS.FrontNonFloatingWindow()) {			//if (whichWindow != OS.FrontWindow()) {			//if (OS.IsWindowActive(whichWindow)) {			if (whichWindow != fActiveWindow) {				//System.out.println("  front click");				//OS.CallNextEventHandler(nextHandler, eRefHandle);				return OS.eventNotHandledErr;			}					fTrackedControl= 0;								if (part == OS.inContent) {				if (handleContentClick(me, whichWindow))					return OS.eventNotHandledErr;			} else				return OS.eventNotHandledErr;			break;				case OS.kEventMouseDragged:			if (fTrackedControl != 0) {				me.getData()[0]= 12345;				windowProc(fTrackedControl, SWT.MouseMove, me);			}			break;		case OS.kEventMouseUp:			if (fTrackedControl != 0)				windowProc(fTrackedControl, SWT.MouseUp, me);			fTrackedControl= 0;			break;					case OS.kEventMouseMoved:					short[] cpart= new short[1];			int whichControl= MacUtil.findControlUnderMouse(where, whichWindow, cpart);					//System.out.println("  kEventMouseMoved");			if (fCurrentControl != whichControl) {							if (fCurrentControl != 0) {					//System.out.println("mouse exit: " + WidgetTable.get(fCurrentControl));					fLastHoverHandle= 0;					windowProc(fCurrentControl, SWT.MouseExit, me);				}								fCurrentControl= whichControl;								if (fCurrentControl != 0) {					//System.out.println("mouse enter: " + WidgetTable.get(fCurrentControl));					windowProc(fCurrentControl, SWT.MouseEnter, me);				}							} else {				if (fCurrentControl != 0) {					windowProc(fCurrentControl, SWT.MouseMove, me);					//System.out.println("mouse moved: " + WidgetTable.get(fCurrentControl));				}			}			break;		}							return OS.kNoErr;	}