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

MouseRelease is received without lifting the finger off a touchscreen

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 5.12.4, 5.12.5, 5.12.6
    • None
    • Snapdragon 820A running Linux and Wayland
    • Linux/Wayland

    Description

      In UI applications based on QWidgets, a touch action is ended prematurely, by sending a MouseRelease, before the finger was lifted off the screen.

      Explanation:

      As far as I know, QWidgets do not support TouchEvents. For this reason, in a QWidgets app, if a TouchEvent was not handled by any UI elements, a MouseEvent is generated and dispatched to the tree of components again. This means a TouchBegin is turned into a MousePressed, a TouchUpdate to a MouseMove and a TouchEnd to a MouseRelease. This is done by the Event Synthesizer.

      On our development board, I noticed that whenever I press the touchscreen (even before lifting my finger off the screen), there are three events posted on the MessageLoop in short succestion:

      1. TouchBegin
      2. MousePress
      3. MouseRelease

      Reproduction hardware

      When running the "scribble" example app (from QtCreator) on the development board, the problem is obvious. That there is no way to draw long lines, the line drawing stops after about 150ms even though the user's finger is still on the touchscreen, resulting in a short line on screen.

      Onx86 this problem is not observed.

      I attached a copy of the scribble test app to this ticket. The only change I made to it is to add three extra logs, one on each mouse event: Press, Move and Release.

      Wayland traces

      I also recorded the wayland logs while running "scribble" on our development board, while reproducing the issue. See attached file "Premature_MouseRelease".

      The action recorded in that file only takes ~2 seconds, dragging a finger from the upper part of the screen downwards.

      Attachments

        1. ApplicationSideLogs.txt
          12 kB
        2. CompositorSideLogs.txt
          12 kB
        3. Premature_MouseRelease
          10 kB
        4. scribble.tar.gz
          8 kB

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              srutledg Shawn Rutledge
              andreib Andrei Basangiu
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes