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

Multitouch gesture locks a map component

    XMLWordPrintable

Details

    • iOS/tvOS/watchOS, Windows

    Description

      We have a map where the user can click on the map to place a pointer, together with the native panning/zooming actions. Lately we decided on having a mini map on top of this.

      We noticed that if the user does a two finger gesture in the mini map the main map 'locks', i.e. a single finger pan or mouse action won't work anymore, however if a multi finger gesture is done it works again afterwards.

      Debugging revealed that the gesturearea of the main map still has an active touch point. How can this be avoided?

      sample code:

      import QtQuick 2.0
      import QtQuick.Window 2.14
      import QtLocation 5.6
      import QtPositioning 5.6
      
      Window {
          width: 1024
          height: 768
          visible: true
      
          Plugin {
              id: mapPlugin
              name: "osm"
          }
      
          Map {
              id: mainmap
              anchors.fill: parent
              plugin: mapPlugin
      
              MouseArea {
                  id: mainMouse
                  anchors.fill: parent
                  acceptedButtons: Qt.AllButtons
                  propagateComposedEvents: true
                  onCanceled: console.log("main canceled");
                  onClicked: console.log("main clicked");
                  onDoubleClicked: console.log("main doubleClicked");
                  onPressAndHold: console.log("main pressAndHold");
                  onWheel: {console.log("main wheel");wheel.accepted=false;}
              }
          }
          Rectangle {
              anchors.top: parent.top
              anchors.right: parent.right
              width: 400
              height: 400
              color:"grey"
      
              Map {
                  id: minimap
                  anchors.fill: parent
                  anchors.margins: 5
                  plugin: mapPlugin
                  center: QtPositioning.coordinate(52,4)
                  zoomLevel: 12
      
                  MouseArea {
                      anchors.fill: parent
                      propagateComposedEvents: true
                      acceptedButtons: Qt.AllButtons
                      onCanceled: {console.log("mini canceled"); }
                      onClicked: console.log("mini clicked");
                      onDoubleClicked: console.log("mini doubleClicked");
                      onPressAndHold: console.log("mini pressAndHold");
                      onWheel: {console.log("mini wheel"); wheel.accepted=false;}
                  }
              }
          }
      }
      

      Attachments

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

        Activity

          People

            paangele Paolo Angelelli
            rincode first last
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes