private void MouseHover(object sender, EventArgs e) {
XEvent xevent;
Hwnd hwnd;
HoverState.Timer.Enabled = false;
if (HoverState.Window != IntPtr.Zero) {
hwnd = Hwnd.GetObjectFromWindow(HoverState.Window);
if (hwnd != null) {
xevent = new XEvent ();
xevent.type = XEventName.ClientMessage;
xevent.ClientMessageEvent.display = DisplayHandle;
xevent.ClientMessageEvent.window = HoverState.Window;
xevent.ClientMessageEvent.message_type = HoverState.Atom;
xevent.ClientMessageEvent.format = 32;
xevent.ClientMessageEvent.ptr1 = (IntPtr) (HoverState.Y << 16 | HoverState.X);
hwnd.Queue.EnqueueLocked (xevent);
WakeupMain ();
}
}
}