Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-89525

evdevtouch report X/Y 0 if current touch operation does not update this value

    XMLWordPrintable

Details

    • Linux/Other display system

    Description

      We are experiencing a problem while using Qt with eglfs and touch usage.

      In our case if someone touches to the bottom of the touchscreen (last pixelline) it may happen that the cursor jumps to the opposite (top) side of the screen.

      After some research it seems that the evdev protocol which is implemented by evdevtouch plugin is wrong in handling the evdev events.

      It seems that the protocol defines that an event for a value is only generated if the desired value changed - else the handler has to use the "last known" value.

      With our touchscreen (ILITEK) a quite huge area at the bottom is mapped to the "highest" Y value (9599) - so it is possible to do multiple touches while not changing the Y coordinate.

      But the current implementation throws the last X and Y position away when the TouchPoint has been released. So any further touch starts with X/Y = 0 while X is updated due to changed value but Y should be "last value" but is 0. In effect the cursor jumps to the top while you touching the bottom of the screen.

      I created a patch to solve this just by copy the last known position to the next Contact object right after the old one has been erased - so next touch starts with the last coordinates.

      I'm not shure if this works well in all situations - especially multi touch - but i dont have an option to test this due our touchscreen supports only single touch. In this case it works well now.

      Maybe someone is able to check the patch with multitouch?

      Attachments

        Activity

          People

            srutledg Shawn Rutledge
            danielrdt Daniel Richardt
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: