Skip to content

Commit 86ade7c

Browse files
author
thyttan
committed
messagegui: compatibility with kineticscroll
1 parent 1e2b2a0 commit 86ade7c

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

apps/messagegui/app.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,13 +369,15 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
369369
alreadyProcessed.idxSpan.stop<MESSAGES.length) {
370370
setTimeout(() => {
371371
E.showScroller();
372+
if (BTN_WATCH) {clearWatch(BTN_WATCH);}
372373
showMessagesScroller(MESSAGES[alreadyProcessed.idxSpan.stop],
373374
true, alreadyProcessed);
374375
}, 40);
375376
}
376377
if (scrollIdx==0 && scrollIdx!=prevScrollIdx && alreadyProcessed.idxSpan.start>0) {
377378
setTimeout(() => {
378379
E.showScroller();
380+
if (BTN_WATCH) {clearWatch(BTN_WATCH);}
379381
showMessagesScroller(MESSAGES[alreadyProcessed.idxSpan.start-1],
380382
true, alreadyProcessed);
381383
}, 40);
@@ -397,11 +399,15 @@ function showMessagesScroller(msg, persist, alreadyProcessed) {
397399
}
398400
}
399401
});
402+
400403
const BTN_WATCH = setWatch(()=>{
401-
WU.show();
402-
const SCROLL_IDX_CENTER_SCREEN = prevScrollIdx>prevPrevScrollIdx ?
404+
Bangle.emit("drag", {dy:0}); // Compatibility with `kineticscroll`, stopping the scroller so it doesn't continue scrolling when the `showMessage` screen is loaded.
405+
// Zero ms timeout as to not move on before the scroller has registered the emitted drag event.
406+
setTimeout(()=>{const SCROLL_IDX_CENTER_SCREEN = prevScrollIdx>prevPrevScrollIdx ?
403407
prevScrollIdx-5 : prevScrollIdx+5; // FIXME: `±5` should depend on screen height and font height.
404-
showMessage(identifyDisplayedMsg(SCROLL_IDX_CENTER_SCREEN).id, true);
408+
WU.show();
409+
showMessage(identifyDisplayedMsg(SCROLL_IDX_CENTER_SCREEN).id, true);
410+
},0)
405411
}, BTN, {edge:'rising'});
406412
}
407413

0 commit comments

Comments
 (0)