[PATCH] Process ABS_{X,Y}, even if multitouch is enabled
Chase Douglas
chasedouglas at gmail.com
Fri Mar 16 13:16:37 PDT 2012
On 03/15/2012 07:38 PM, Thorsten Wißmann wrote:
> This allows the processing of cursor motion events for input devices
> that provide both absolute multitouch events (e.g. by fingers) and
> touchless motion events (e.g. special pens)
>
> Signed-off-by: Thorsten Wißmann <edu at thorsten-wissmann.de>
> Signed-off-by: Maximilian Krüger <maxfragg at gmail.com>
> ---
> src/evdev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index d540b87..b857b83 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -832,7 +832,7 @@ EvdevProcessAbsoluteMotionEvent(InputInfoPtr pInfo,
> struct input_event *ev)
> if (ev->code >= ABS_MT_SLOT) {
> EvdevProcessTouchEvent(pInfo, ev);
> pEvdev->abs_queued = 1;
> - } else if (!pEvdev->mt_mask) {
> + } else if (!pEvdev->mt_mask || ev->code == ABS_X || ev->code ==
> ABS_Y) {
> map = pEvdev->axis_map[ev->code];
> valuator_mask_set(pEvdev->vals, map, value);
> pEvdev->abs_queued = 1;
I think the problem here is that on a touchscreen device we would be
sending motion events at the same time the server is emulating motion
events when the event is due to a touch event.
I think what needs to happen is that we generate an event only if
BTN_TOOL_* is true for an evdev packet.
Thanks!
-- Chase
More information about the xorg-devel
mailing list