summaryrefslogtreecommitdiffstats
path: root/map-widget
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-26 00:10:08 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-27 22:59:22 +0100
commitfe69b304b2496233142d9018ab5c6a7675ea089c (patch)
treea1be9b27f00f438e61094eadaff5efa80c501821 /map-widget
parent8bc61f42cb24d0360d7ebb4a588ec8d6e7d6c95e (diff)
downloadsubsurface-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.qml4
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()