From 2d75bc867be0e6325cc6b72e4d2c30d617ffde64 Mon Sep 17 00:00:00 2001 From: "YUKI \"Piro\" Hiroshi" Date: Wed, 5 May 2021 00:11:39 +0900 Subject: [PATCH] Add a new API to stop scroll #2864 --- webextensions/common/tst-api.js | 1 + webextensions/sidebar/scroll.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/webextensions/common/tst-api.js b/webextensions/common/tst-api.js index 04869e781..f5ab48f02 100644 --- a/webextensions/common/tst-api.js +++ b/webextensions/common/tst-api.js @@ -129,6 +129,7 @@ export const kTOGGLE_TREE_COLLAPSED = 'toggle-tree-collapsed'; export const kADD_TAB_STATE = 'add-tab-state'; export const kREMOVE_TAB_STATE = 'remove-tab-state'; export const kSCROLL = 'scroll'; +export const kSTOP_SCROLL = 'stop-scroll'; export const kSCROLL_LOCK = 'scroll-lock'; export const kSCROLL_UNLOCK = 'scroll-unlock'; export const kNOTIFY_SCROLLED = 'scrolled'; diff --git a/webextensions/sidebar/scroll.js b/webextensions/sidebar/scroll.js index 3da3d31d1..0608a20d1 100644 --- a/webextensions/sidebar/scroll.js +++ b/webextensions/sidebar/scroll.js @@ -647,6 +647,22 @@ function onMessageExternal(message, _aSender) { return true; }); })(); + + case TSTAPI.kSTOP_SCROLL: + return (async () => { + const currentWindow = TabsStore.getCurrentWindowId(); + const windowId = message.window || message.windowId; + if (windowId == 'active') { + const currentWindow = await browser.windows.get(TabsStore.getCurrentWindowId()); + if (!currentWindow.focused) + return; + } + else if (windowId != currentWindow) { + return; + } + cancelRunningScroll(); + return true; + })(); } }