+2007-08-20 Everaldo Canuto <ecanuto@novell.com>
+
+ * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
+ flag to make fast handle of mouse events, without this the mouse move is
+ handled in some manner, whether it is a mouse move or not. Fixes #81588.
+
2007-08-20 Carlos Alberto Cortez <calberto.cortez@gmail.com>
* ListView.cs: When doing layout calculations don't use a ref
EventMask.ExposureMask |
EventMask.FocusChangeMask |
EventMask.PointerMotionMask |
+ EventMask.PointerMotionHintMask |
EventMask.SubstructureNotifyMask);
static readonly object lockobj = new object ();
}
}
+ if (xevent.MotionEvent.is_hint != 0)
+ {
+ IntPtr root, child;
+ int mask;
+ XQueryPointer (DisplayHandle, xevent.AnyEvent.window,
+ out root, out child,
+ out xevent.MotionEvent.x_root,
+ out xevent.MotionEvent.y_root,
+ out xevent.MotionEvent.x,
+ out xevent.MotionEvent.y, out mask);
+ }
+
msg.message = Msg.WM_MOUSEMOVE;
msg.wParam = GetMousewParam(0);
msg.lParam = (IntPtr) (xevent.MotionEvent.y << 16 | xevent.MotionEvent.x & 0xFFFF);
XGrabPointer(DisplayHandle, hwnd.client_window, false,
EventMask.ButtonPressMask | EventMask.ButtonMotionMask |
EventMask.ButtonReleaseMask | EventMask.PointerMotionMask |
- EventMask.LeaveWindowMask,
+ EventMask.PointerMotionHintMask | EventMask.LeaveWindowMask,
GrabMode.GrabModeAsync, GrabMode.GrabModeAsync, confine_to_window, IntPtr.Zero, IntPtr.Zero);
}
}
XChangeActivePointerGrab (DisplayHandle,
EventMask.ButtonMotionMask |
EventMask.PointerMotionMask |
+ EventMask.PointerMotionHintMask |
EventMask.ButtonPressMask |
EventMask.ButtonReleaseMask,
cursor, IntPtr.Zero);