[Wayland-bugs] [Bug 51909] New: [bug] wl_touch::down event has wrong coordinates

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jul 9 13:34:33 PDT 2012


https://bugs.freedesktop.org/show_bug.cgi?id=51909

             Bug #: 51909
           Summary: [bug] wl_touch::down event has wrong coordinates
    Classification: Unclassified
           Product: Wayland
           Version: unspecified
          Platform: All
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: weston
        AssignedTo: wayland-bugs at lists.freedesktop.org
        ReportedBy: ppaalanen at gmail.com


By tracing simple-touch client on Android, Galaxy Nexus touchscreen, I see:

[2275673.175] wl_touch at 7.down(0, 252776, wl_surface at 6, 0, 123.000000,
194.000000)
[2275673.724] wl_touch at 7.motion(252777, 0, 482.000000, 362.000000)
[2275771.437] wl_touch at 7.motion(252875, 0, 480.000000, 362.000000)
[2275830.500] wl_touch at 7.motion(252934, 0, 478.000000, 360.000000)
[2275909.090] wl_touch at 7.motion(253013, 0, 477.000000, 358.000000)
[2276262.972] wl_touch at 7.motion(253366, 0, 475.000000, 358.000000)
[2276377.413] wl_touch at 7.up(0, 253481, 0)
[2278921.704] wl_touch at 7.down(0, 256025, wl_surface at 6, 0, 475.000000,
358.000000)
[2278922.254] wl_touch at 7.motion(256025, 0, 130.000000, 371.000000)
[2279177.370] wl_touch at 7.motion(256281, 0, 128.000000, 371.000000)
[2279235.597] wl_touch at 7.motion(256339, 0, 126.000000, 371.000000)
[2279459.627] wl_touch at 7.up(0, 256563, 0)

Only wl_touch events are listed above.

The coordinates to wl_touch:down seem to be the coordinates of the previous
wl_touch:motion. This causes simple-touch to draw an extra mark at the old
position.

This also causes the initial notify_touch(WL_TOUCH_DOWN) call to have wrong
coordinates and therefore focus on a wrong surface. In practice, a surface
needs to be tapped twice to actually give it touch focus.

I assume that the proper fix would be to make evdev.c react to SYN events,
instead of only the heuristic buffering it does now.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Wayland-bugs mailing list