From b027e220bd334cf1eea5e8973e6855a3bb9258a2 Mon Sep 17 00:00:00 2001 From: Martin Boonk Date: Thu, 8 Jun 2023 22:13:09 +0200 Subject: [PATCH] gpstrek - Reimplement scrolling for overview --- apps/gpstrek/app.js | 53 +++++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/apps/gpstrek/app.js b/apps/gpstrek/app.js index f8e90053a..f0fa3196f 100644 --- a/apps/gpstrek/app.js +++ b/apps/gpstrek/app.js @@ -813,31 +813,39 @@ let onAction = function(_,xy){ } else { mapLiveScale *= 1.5; } - } else if (xy && xy.y > Bangle.appRect.y){ - isMapOverview = !isMapOverview; - if (!isMapOverview){ - mapOverviewX = g.getWidth()/2; - mapOverviewY = g.getHeight()/2; - } + } else if (isMapOverview && xy && xy.y > Bangle.appRect.y){ + scrolling = !scrolling; } startDrawing(); } }; +let scrolling = false; + let onSwipe = function(dirLR,dirUD){ let s = WIDGETS.gpstrek.getState(); clearTaskQueue(); forceMapRedraw = true; if (s.mode == MODE_MAP){ - if (dirLR > 0) { - switchMode(MODE_MENU); - } else if (dirLR < 0) { - switchMode(MODE_SLICES); - } - if (dirUD){ - isMapOverview = !isMapOverview; - startDrawing(); + if (!scrolling){ + if (dirLR > 0) { + switchMode(MODE_MENU); + } else if (dirLR < 0) { + switchMode(MODE_SLICES); + } + if (dirUD){ + isMapOverview = !isMapOverview; + if (!isMapOverview){ + mapOverviewX = g.getWidth()/2; + mapOverviewY = g.getHeight()/2; + scrolling = false; + } + startDrawing(); + } + } else { + mapOverviewX += dirLR * SETTINGS.overviewScroll; + mapOverviewY += dirUD * SETTINGS.overviewScroll; } } else if (s.mode == MODE_SLICES){ if (dirLR > 0) { @@ -863,23 +871,6 @@ let onSwipe = function(dirLR,dirUD){ } } } - - -/* - if (WIDGETS.gpstrek.getState().route && global.screen == 1 && isMapOverview){ - stopDrawing(); - if (dirLR) mapOverviewX += SETTINGS.overviewScroll*dirLR; - if (dirUD) mapOverviewY += SETTINGS.overviewScroll*dirUD; - startDrawing(); - } else { - if (dirUD < 0) { - nextSlicePage(); - } else if (dirUD > 0) { - prevSlicePage(); - } else { - nextScreen(); - } - }*/ };