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

Macbook two finger scroll gesture on Flickable sets moving to true, never sets it back to false

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • 5.6.1
    • 5.5.1
    • None
    • "Macbook Pro (Retina, 13-inch, Early 2015)" running OS X 10.11.5
    • 9b8d0bffdafeb4dd9b256113716c07f2c49f3903

    Description

      Create a project with something like this as main.qml:

      main.qml
      import QtQuick 2.3
      import QtQuick.Window 2.2
      
      Window {
          visible: true
      
          Flickable {
              anchors.fill: parent
              onMovingChanged: console.log(moving ? "started moving"
                                                  : "stopped moving")
              onMovementStarted: console.log("movement started")
              onMovementEnded: console.log("movement ended")
              onDraggingChanged: console.log(dragging ? "started dragging"
                                                      : "stopped dragging")
              flickableDirection: Flickable.VerticalFlick
              contentHeight: column.implicitHeight
      
              Column {
                  id: column
                  Repeater {
                      model: 20
                      Text {
                          text: "Item " + index
                      }
                  }
              }
          }
      }
      

      Run the application. Try moving the flickable using the following methods. In each case, observe the console output:
      1) Click and drag.
      2) hover and scroll using a mouse that has a real, rotating scroll-wheel (i.e. not an apple, 'magic mouse').
      3) hover and scroll using a two-finger swipe on the macbook touchpad.

      Results:
      1) Click and drag

      qml: started dragging
      qml: started moving
      qml: movement started
      qml: stopped dragging
      qml: stopped moving
      qml: movement ended
      

      2) Physical scroll wheel

      qml: started moving
      qml: movement started
      qml: stopped moving
      qml: movement ended
      

      3) Two-finger swipe gesture on trackpad

      qml: started dragging
      qml: started moving
      qml: movement started
      qml: stopped dragging
      qml: started dragging
      qml: stopped dragging
      

      For both the click-and-drag and physical scroll wheel, the moving property is set back to false when the flickable stops moving. However, with the two-finger gesture, it says, "movement started", but never, "movement ended". There is also a second pair of, "started dragging", "stopped dragging" at the end of the gesture/movement. Any code which depends on the moving property is left in the wrong state forever.

      Attachments

        Issue Links

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

          Activity

            People

              srutledg Shawn Rutledge
              THall Tom Hall
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes