From 0d0e62aedf8bfd8393f5ad17e369a95ddc12137f Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 25 Aug 2024 17:06:50 +0530 Subject: firefox: Add private browsing indicator + move passthru indicator --- .../firefox.home/chrome/globalKeybindings.uc.js | 26 ++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'modules/firefox.home/chrome/globalKeybindings.uc.js') diff --git a/modules/firefox.home/chrome/globalKeybindings.uc.js b/modules/firefox.home/chrome/globalKeybindings.uc.js index 1ff868c..4ad35da 100644 --- a/modules/firefox.home/chrome/globalKeybindings.uc.js +++ b/modules/firefox.home/chrome/globalKeybindings.uc.js @@ -41,10 +41,21 @@ const togglePassthrough = () => () => UC.globalKeybindings.updateMode(m => m !== MODE_PASSTHRU ? MODE_PASSTHRU : MODE_NORMAL) const sidetabs = { - getExtensionId: () => [...SidebarController.sidebars].find(([_, p]) => p.label?.match(/sidetabs/i))?.[0], - ensureOpen: () => !SidebarController.isOpen && SidebarController.show(sidetabs.getExtensionId() ?? undefined), - toggle: () => () => { - sidetabs.ensureOpen(); + getExtensionId: () => { + return [...SidebarController.sidebars].find(([_, p]) => p.label?.match(/sidetabs/i))?.[0]; + }, + ensureReady: async () => { + for (let i = 0; i < 3; i++) { + if (sidetabs.getExtensionId()) { + return !SidebarController.isOpen && SidebarController.show(sidetabs.getExtensionId() ?? undefined) + } else { + console.log('sidebar retry...'); + await new Promise(res => setTimeout(res), 100); + } + } + }, + toggle: () => async () => { + await sidetabs.ensureReady(); const sidebar = document.getElementById('sidebar-box'); sidebar?.classList.toggle('open'); }, @@ -97,17 +108,18 @@ updateMode: f => { module.mode = f(module.mode); - gBrowser.tabContainer.dataset.keyMode = module.mode + if (gNavToolbox) gNavToolbox.dataset.keyMode = module.mode; + Services.obs.notifyObservers(null, 'uc:globalKeybindings:modeChanged', module.mode); }, handleKeyUpEvent: e => module.evaluateKeybindings(module.keybindings.RELEASE, e), handleKeyDownEvent: e => module.evaluateKeybindings(module.keybindings.PRESS, e), - onWindowReady: (win) => { + onWindowReady: async (win) => { win.addEventListener('keyup', module.handleKeyUpEvent, true); win.addEventListener('keydown', module.handleKeyDownEvent, true); - sidetabs.ensureOpen(); + await sidetabs.ensureReady(); }, init(win) { -- cgit v1.3.1