Long delay between physical mouse click and MapQuickView::mouseClicked / SceneQuickView::mouseClicked signals

433
1
Jump to solution
12-20-2023 03:55 AM
radimbachb
New Contributor III

Dear esri community

We'd like to use MapQuickView::mouseClicked / SceneQuickView::mouseClicked signals to respond to mouse click events. However, we noticed that there is a considerable delay of about a second between the physical mouse click and the time the mouseClicked signals are emitted / handled. This results in a very unresponsive user experience, for example when the user wants to identify a layer or graphic. These identify operations only take around 50ms, compared to the 1000ms it takes just to receive the mouseClicked event...

Is there anything we can do to decrease this delay?

For testing purposes we set a QML MouseArea over the whole screen. Handling the MouseArea OnClicked event and then identify layers and graphics feels much much quicker than with MapQuickView's mouseClicked signals. But if possible we'd like to keep using the MapQuickView's signals for simplicity's sake.

We're using ArcGIS Maps SDK for Qt Version 200.2

0 Kudos
1 Solution

Accepted Solutions
LucasDanzinger
Esri Frequent Contributor

The delay is there so that we can decipher between a single mouse click and a double mouse click. The original intent was that we wanted those signals to be exclusive, meaning you could have one behavior happen on mouse click and another on double click. 

 

One thing you could do if you want a more responsive click experience could be to use the mousePressed and mouseReleased signals. You could run your identify on either one of those, or you could could listen for a press then a release within a tolerance of the same screen coordinate.

View solution in original post

1 Reply
LucasDanzinger
Esri Frequent Contributor

The delay is there so that we can decipher between a single mouse click and a double mouse click. The original intent was that we wanted those signals to be exclusive, meaning you could have one behavior happen on mouse click and another on double click. 

 

One thing you could do if you want a more responsive click experience could be to use the mousePressed and mouseReleased signals. You could run your identify on either one of those, or you could could listen for a press then a release within a tolerance of the same screen coordinate.