private void XEventThread () { while (true) { XEvent xevent = new XEvent (); Xlib.XNextEvent (display, ref xevent); if (xevent.AnyEvent.type == XEventName.KeyPress && Xlib.XFilterEvent (ref xevent, FosterParent.Handle)) continue; X11Hwnd hwnd = (X11Hwnd)Hwnd.GetObjectFromWindow(xevent.AnyEvent.window); if (hwnd != null) hwnd.Queue.EnqueueLocked (xevent); } }