void ProcessGraphicsExpose (Hwnd hwnd)
{
XEvent xevent = new XEvent ();
IntPtr handle = Hwnd.HandleFromObject (hwnd);
EventPredicate predicate = GraphicsExposePredicate;
for (;;) {
XIfEvent (Display, ref xevent, predicate, handle);
if (xevent.type != XEventName.GraphicsExpose)
break;
AddExpose (hwnd, xevent.ExposeEvent.window == hwnd.ClientWindow, xevent.GraphicsExposeEvent.x, xevent.GraphicsExposeEvent.y,
xevent.GraphicsExposeEvent.width, xevent.GraphicsExposeEvent.height);
if (xevent.GraphicsExposeEvent.count == 0)
break;
}
}