System.out.println("parent " + handle); System.out.println("disposing " + context);
		public void handleEvent (Event event) {			int xDisplay = OS.XtDisplay (handle);			switch (event.type) {			case SWT.Paint:				/**				* Bug in MESA.  MESA does some nasty sort of polling to try				* and ensure that their buffer sizes match the current X state.				* This state can be updated using glViewport().				* FIXME: There has to be a better way of doing this.				*/				int [] viewport = new int [4];				GLX.glGetIntegerv (GLX.GL_VIEWPORT, viewport);				GLX.glViewport (viewport [0],viewport [1],viewport [2],viewport [3]);				break;			case SWT.KeyDown:				break;			case SWT.Resize:				Rectangle clientArea = getClientArea();				OS.XMoveResizeWindow (xDisplay, xWindow, clientArea.x, clientArea.y, clientArea.width, clientArea.height);				break;			case SWT.Dispose:				System.out.println("parent " + handle);				System.out.println("disposing " + context);				if (context != 0) {					if (GLX.glXGetCurrentContext () == context) {						GLX.glXMakeCurrent (xDisplay, 0, 0);					}					GLX.glXDestroyContext (xDisplay, context);					context = 0;				}				if (xWindow != 0) {					OS.XtUnregisterDrawable (xDisplay, xWindow);					OS.XDestroyWindow (xDisplay, xWindow);					xWindow = 0;				}				if (colormap != 0) {					OS.XFreeColormap (xDisplay, colormap);					colormap = 0;				}				break;			}		}