diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-11-26 00:10:08 +0200 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-11-27 22:59:22 +0100 |
commit | fe69b304b2496233142d9018ab5c6a7675ea089c (patch) | |
tree | a1be9b27f00f438e61094eadaff5efa80c501821 /map-widget | |
parent | 8bc61f42cb24d0360d7ebb4a588ec8d6e7d6c95e (diff) | |
download | subsurface-fe69b304b2496233142d9018ab5c6a7675ea089c.tar.gz |
map-widget: interrupt map animations on new interactions
When the map is performing zoom/pan animation and the
user performs an action that would trigger a new zoom/pan
animation, but some glitches can occurs. An example
would be when one clicks a dive in the dive list -
the zoom/pan animation will trigger, so that the map
is centered on the dive site, but if the user clicks the
[+] button to zoom-in, while the animation is running
the map will glitch.
This patch prevents such glitches by stopping
all running animations in progress when the user:
- single clicks the map
- uses the mouse-wheel to zoom
- presses the [+] / [-] buttons
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'map-widget')
-rw-r--r-- | map-widget/qml/MapWidget.qml | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/map-widget/qml/MapWidget.qml b/map-widget/qml/MapWidget.qml index 646d2f993..2a75d4080 100644 --- a/map-widget/qml/MapWidget.qml +++ b/map-widget/qml/MapWidget.qml @@ -128,6 +128,8 @@ Item { MouseArea { anchors.fill: parent + onPressed: { map.stopZoomAnimations(); mouse.accepted = false } + onWheel: { map.stopZoomAnimations(); wheel.accepted = false } onDoubleClicked: map.doubleClickHandler(map.toCoordinate(Qt.point(mouseX, mouseY))) } @@ -294,6 +296,7 @@ Item { MouseArea { anchors.fill: parent onClicked: { + map.stopZoomAnimations() map.newCenter = map.center map.newZoom = map.zoomLevel + map.zoomStep if (map.newZoom > map.maximumZoomLevel) @@ -318,6 +321,7 @@ Item { MouseArea { anchors.fill: parent onClicked: { + map.stopZoomAnimations() map.newCenter = map.center map.newZoom = map.zoomLevel - map.zoomStep mapAnimationClick.restart() |